用于在不读取(确认)缓冲区名称的情况下从文件中区分缓冲区的 Emacs 热键
Emacs hotkey for diffing buffer from file without reading (confirming) buffer name
我创建了一个调用 diff-buffer-with-file
命令的热键,但您必须按回车键确认您所在的文件是正确区分的文件:(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)))
.
您只能将命令(或键盘宏)绑定到一个键。 (diff-buffer-with-file (buffer-file-name))
不是命令。如果那是您想要的代码,那么您需要使用 defun
来定义使用该代码的命名命令,或者您需要使用使用它的匿名命令(lambda 形式)。而且您不需要将文件名作为参数传递。
(global-set-key (kbd "C-c e") (lambda () (interactive) (diff-buffer-with-file)))
您缺少的主要内容是 interactive
规范,它将函数转换为命令。
我创建了一个调用 diff-buffer-with-file
命令的热键,但您必须按回车键确认您所在的文件是正确区分的文件:(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)))
.
您只能将命令(或键盘宏)绑定到一个键。 (diff-buffer-with-file (buffer-file-name))
不是命令。如果那是您想要的代码,那么您需要使用 defun
来定义使用该代码的命名命令,或者您需要使用使用它的匿名命令(lambda 形式)。而且您不需要将文件名作为参数传递。
(global-set-key (kbd "C-c e") (lambda () (interactive) (diff-buffer-with-file)))
您缺少的主要内容是 interactive
规范,它将函数转换为命令。