0

我切换到 Mac,不得不放弃我最喜欢的 R 编辑器(记事本++)。现在我正在尝试学习 Emacs。学习曲线很陡峭,但是一旦我学会使用它,这似乎就像R的编辑器。我正在使用 OS X 10.8.3 和 Aquamacs 2.4

我正在尝试按照这些 SO 问题的出色提示设置自定义键绑定:123

如果我将此命令复制到preferences.el 文件中,Aquamacs 将毫无怨言地打开,并且该命令有效:

(global-set-key [C-tab] 'other-window)

但是,如果我尝试设置以下选项之一:

(define-key ess-mode-map (kbd "C .") 'ess-eval-paragraph)
(define-key ess-mode-map [C-.] 'ess-eval-paragraph)
(define-key ess-mode-map "\C-." 'ess-eval-paragraph)

Aquamacs 打开并抱怨,但命令有效:

加载“~/Library/Preferences/Aquamacs Emacs/Preferences.el(或.elc)”时出错:

Symbol 作为变量的值是 void:ess-mode-map

为确保正常运行,您应该调查并删除初始化文件中的错误原因。使用 `--debug-init' 选项启动 Emacs 以查看完整的错误回溯。

我想使用 Ctrl + 。将 R 代码/缓冲区的段落运行到 R。显然我做错了什么。由于我是 Mac 和 Emacs 的完全新手,这让我感到不知所措。发生了什么,如何解决这个问题?

4

1 回答 1

3

ess-mode-map在它存在之前你不能修改。在加载 ess(特别是 ess-mode)之前它不存在。所以像下面这样的东西应该可以工作:

(eval-after-load "ess-mode"
  '(define-key ess-mode-map (kbd "C-.") 'ess-eval-paragraph))

编辑:注意C-.不在 ascii 字符集中,所以"\C-."字符串不起作用。您必须改用(kbd "C-.")表格。该字符串适用于其他组合,例如"\C-a"(不是您应该将其绑定到 Ca)。有关详细信息,请参阅手册

于 2013-05-07T17:18:00.423 回答