2014-03-01 62 views
1

我知道M-x(執行擴展命令)允許通過輸入名稱來調用Emacs中的命令。這可是不允許我打電話給帶參數的命令,e.g 「反向詞5」在Emacs迷你緩衝區中調用帶參數的命令

我知道C-5 M-B產生期望的結果,但我正在尋找的一般方法。

有誰知道如何做到這一點?

感謝, 丹尼

回答

0

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

  1. 但是,如果你有興趣,不僅在獲得副作用的評價,不僅在返回值的粗略概述,但在滿返回值(不管它的大小和複雜度),那麼香草Emacs M-:是不是你想要的。

    對於這一點,我代替pp-eval-expressioneval-expression WRT它的鍵綁定(包括M-:),我建議這種做法對他人太:

    (替代密鑰定義 'EVAL-表達' PP-EVAL -expression全球地圖)

    美觀地打印的返回值,你可以把它打印完整的值(沒有省略號:...)。

  2. 另外,我在庫pp+.el中提供pp-eval-expression的修改版本。它具有以下優點:

    • 讀取與完成,使用pp-read-expression-map
    • Emacs-Lisp模式縮進和完成鍵綁定在輸入過程中可用。
    • 使用前綴arg,將結果值插入當前緩衝區的點。
    • 使用負前綴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也。

2

評估和演示它:M-:(backward-word 5)RET

相關問題