Emacs,将 "convert buffer to dos format" 绑定到 f11 键

Emacs, bind "convert buffer to dos format" to f11 key

我正在尝试绑定这一系列命令

C-x RET f undecided-dos

到我的键盘 f11 键。到目前为止,我已经尝试了很多东西,例如

\C-x RET \f undecided-dos

在我的 .emacs 文件中,但没有成功。请告诉我正确的语法。

如果您可以交互式地完成一个命令,您就可以向 Emacs 查询您所执行的函数的调用。尝试 M-x repat-complex-command 并按一次向上箭头(如果您在此期间完成了其他命令,则按多次)或寻求键绑定帮助:

C-h k C-x RET f

=> set-buffer-file-coding-system

不幸的是,您不能将其直接绑定到击键:

;;;; BROKEN
(global-set-key (kbd "<f11>") '(set-buffer-file-coding-system 'dos-undecided))

... 因为当您尝试 运行 时,您 运行 变成

Wrong type argument: commandp, (set-buffer-file-coding-system (quote dos-undecided))

您可以通过在其周围指定 interactive 形式来解决此问题:

(global-set-key (kbd "<f11>")
  (lambda ()
    (interactive "*")
    (set-buffer-file-coding-system 'undecided-dos)))

interactive"*" 参数表示它只允许在您有权修改的缓冲区中使用。