2015-06-23 112 views
0

我製作了一個熱鍵,它調用diff-buffer-with-file命令,但必須點擊回車以確認您所在的文件是正確區分的文件:(global-set-key (kbd "C-c e") 'diff-buffer-with-file)Emacs熱鍵用於從文件中區分緩衝區而不讀取(確認)緩衝區名稱

我擡頭看了看文檔,看到你也給&optional BUFFER,那麼我該如何指定文件名呢?

我在網上看到文件名存儲在buffer-file-name所以我試過(global-set-key (kbd "C-c e") '(diff-buffer-with-file (buffer-file-name)))但它失敗,出現錯誤:Wrong type argument: commandp, (diff-buffer-with-file (quote (buffer-file-name)))

回答

1

您只能將命令(或鍵盤宏)綁定到某個鍵。 (diff-buffer-with-file (buffer-file-name))不是命令。如果這是您想要的代碼,那麼您需要使用defun來定義使用該代碼的命名命令,或者需要使用使用它的匿名命令(lambda表單)。而且你不需要傳遞文件名作爲參數。

(global-set-key (kbd "C-c e") (lambda() (interactive) (diff-buffer-with-file))) 

你缺少的主要事情是interactive規範,這使得功能到一個命令。

+0

工程就像一個魅力,謝謝! – Czipperz