在Emacs minibuffer中使用参数调用命令

在Emacs minibuffer中使用参数调用命令,emacs,command,interactive,Emacs,Command,Interactive,我知道M-x(执行扩展命令)允许人们通过键入命令名来调用Emacs中的命令。然而,这不允许我使用参数调用命令,例如“backward word 5” 我知道C-5 M-b会产生所需的结果,但我正在寻找一种通用方法 有人知道怎么做吗 谢谢, Danny评估它:M-:(向后的单词5)RET.@abo abo提供了一般性的答案:使用M-: 但是,如果您不仅对获取评估的副作用感兴趣,而且不仅对返回值的粗略概述感兴趣,而且对完整返回值(无论大小和复杂程度)感兴趣,那么香草EmacsM-:不是您想要的 为此

我知道M-x(执行扩展命令)允许人们通过键入命令名来调用Emacs中的命令。然而,这不允许我使用参数调用命令,例如“backward word 5”

我知道C-5 M-b会产生所需的结果,但我正在寻找一种通用方法

有人知道怎么做吗

谢谢,
Danny

评估它:M-:
(向后的单词5)
RET.

@abo abo提供了一般性的答案:使用
M-:

  • 但是,如果您不仅对获取评估的副作用感兴趣,而且不仅对返回值的粗略概述感兴趣,而且对完整返回值(无论大小和复杂程度)感兴趣,那么香草Emacs
    M-:
    不是您想要的

    为此,我将
    pp eval expression
    替换为
    eval expression
    wrt它的键绑定(包括
    M-:
    ),我也向其他人推荐这种做法:

    (替换键定义“eval expression”pp eval expression全局映射)

    这会打印返回值,您可以让它打印完整的值(没有省略号:

  • 此外,我还提供了库中的
    pp eval expression
    的修改版本。它有以下优点:

    • 使用
      pp读取表达式映射
      完成读取
    • Emacs Lisp模式缩进和完成键绑定在输入期间可用
    • 使用前缀arg,在点处将结果值插入当前缓冲区
    • 如果返回值是字符串,则使用负前缀arg将其插入缓冲区,而不使用双引号(
    • 字体锁定Emacs Lisp模式的返回值(语法突出显示)。(在显示期间,禁用
      Emacs Lisp模式挂钩
      更改主模式挂钩
    • 尊重新的用户选项
      pp eval expression打印长度
      pp eval expression打印级别
      和标准选项
      eval expression出错时调试
      。前者与类似的标准选项
      eval expression打印长度
      eval expression打印级别
      ,因为用例通常不同
  • 如果您使用library,那么您将获得与library相同的优势——也无需加载
    pp+.el