我制作了一个调用diff-buffer-with-file
命令的热键,但是你必须按Enter键确认你所在的文件是正确区分的文件:(global-set-key (kbd "C-c e") 'diff-buffer-with-file)
。
我查看了文档并看到你也给了&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)))
。
答案 0 :(得分:1)
您只能将命令(或键盘宏)绑定到某个键。 (diff-buffer-with-file (buffer-file-name))
不是命令。如果这是您想要的代码,那么您需要使用defun
来定义使用该代码的命名命令,或者您需要使用使用它的匿名命令(lambda格式)。而且您不需要将文件名作为参数传递。
(global-set-key (kbd "C-c e") (lambda () (interactive) (diff-buffer-with-file)))
您遗漏的主要内容是interactive
规范,它将函数转换为命令。