我最近在http://vgoulet.act.ulaval.ca/en/emacs/上使用 Vincent Goulet 的 Windows 7 安装程序从 R 2.15 和旧版本的 ESS 升级。这包括 ESS 版本 13.09。我也刚刚安装了 R 版本 3.0.2。
我的旧工作流程是使用 Cc Ct(默认键绑定)通过运行命令ess-execute
并将结果发送到临时缓冲区。我发现这对我的工作流程和 R 编程风格非常有用。
但是,在新版本中,此键绑定已被删除。我四处搜索,找不到有关此主题的任何其他线程。我查看了 ess-mode.el 并找到了这一行:
;; (define-key map "\C-c\C-t" 'ess-execute-in-tb)
哪个被注释掉了。我看到他们添加了不错的功能ess-describe-object-at-point
,但不允许执行命令。
我不是 emacs 高级用户,所以我倾向于将 lisp 片段复制到我的 .emacs 中并对它们进行小幅编辑。我尝试(1)取消注释上面的行和(2)在我的 .emacs 文件中定义一个新的键绑定,与 ESSShift Enter (http://www.emacswiki.org/emacs/ESSShiftEnter)中的新键绑定相同。
(add-hook 'ess-mode-hook
(lambda()
(local-set-key [(shift return)] 'my-ess-eval)
;; added Ctrl-Enter to stay on same line
(local-set-key [C-return] 'ess-eval-line)
;; Newest version of ESS got rid of C-c C-t for ess-execute add back
(local-set-key "\C-c\C-t" 'ess-execute-in-tb))
然而,这两种方法都没有奏效。
我的问题是:在新版本中禁用此键绑定是否有原因?即我应该使用一些其他功能来取代它吗?如果没有,再次启用此键绑定的最佳方法是什么?