繁体   English   中英

在Emacs minibuffer中调用带有参数的命令

[英]Call a command with arguments in Emacs minibuffer

我知道Mx(execute-extended-command)允许通过键入其名称在Emacs中调用命令。 但是,这不允许我使用参数调用命令,例如“后向单词5”

我知道C-5 Mb可以产生理想的结果,但我正在寻找一种通用方法。

有谁知道如何做到这一点?

谢谢,丹尼

评估: M- :( (backward-word 5) RET

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

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

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

    (替代键定义'eval-expression'pp-eval-expression全局地图)

    这样就漂亮地打印了返回值,您可以使其返回完整的值(没有省略号: ... )。

  2. 另外,我在库pp+.el提供了pp-eval-expression的修改版本。 具有以下优点:

    • 完成读取,使用pp-read-expression-map
    • 输入期间可以使用Emacs-Lisp模式的缩进和完成键绑定。
    • 使用前缀arg,将结果值插入到当前缓冲区的point处。
    • 带有负前缀arg的返回值如果是字符串,则将其插入到缓冲区中,且不带双引号( " )。
    • 字体锁定Emacs-Lisp模式的返回值(语法突出显示)。 (并且在显示期间, emacs-lisp-mode-hookchange-major-mode-hook被禁止。)
    • 尊重新的用户选项pp-eval-expression-print-lengthpp-eval-expression-print-level和标准选项eval-expression-debug-on-error 前者与类似的标准选项eval-expression-print-lengtheval-expression-print-level分开,因为用例通常不同。
  3. 如果使用库Icicles,则可以获得与库pp+.el相同的优点-无需同时加载pp+.el

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM