首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Emacs ESS密钥绑定

Emacs ESS密钥绑定
EN

Stack Overflow用户
提问于 2013-06-03 04:02:07
回答 2查看 409关注 0票数 1

我正在尝试为ESS设置一些键绑定。我读到的一种方式是:

代码语言:javascript
复制
(eval-after-load "ess-mode"
  '(define-key ess-mode-map (kbd "<f5>") 'myfunc))

但这只适用于由<<>>@分隔的代码块。

另一个问题是,我想在普通LaTeX模式( .tex文件)和LaTeX模式( .rnw文件)中使用相同的密钥,所以我不能只为LaTeX模式和ESS模式定义两次密钥。

虽然有LaTeX-mode-hook,但我没有看到像`ess-noweb-mode-hook这样的东西。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-05 04:21:30

经过反复试验,我找到了答案。

如果我们在一个只有LaTeX的缓冲区中,这是真的:(and (equal (symbol-name major-mode) "latex-mode") (not ess-noweb-mode)))

如果我们在ESS缓冲区的区块之外,这是真的:ess-noweb-mode

您可能会对以下方便的函数感兴趣。

代码语言:javascript
复制
;Check ESS related modes 
(defun is-pure-latex ()
  "The buffer is in LaTeX mode, but not in ESS mode."
  (and (equal (symbol-name major-mode) "latex-mode") (not ess-noweb-mode)))

(defun is-ess ()
  "The buffer is in ESS mode."
  ess-noweb-mode)

(defun is-ess-doc ()
  "The buffer is in ESS mode and insertion point is outside a chunk."
  (and ess-noweb-mode (equal (symbol-name major-mode) "latex-mode")))

(defun is-ess-chunk ()
  "The buffer is in ESS mode an insertion point is inside  a chunk."
  (equal (symbol-name major-mode) "ess-mode"))

(defun is-ess-inf ()
  "The buffer is in inferior ESS mode"
  (equal (symbol-name major-mode) "inferior-ess-mode"))
票数 1
EN

Stack Overflow用户

发布于 2013-06-03 05:15:26

ess-noweb模式只是一个包装器,它在相应的块中加载latex mode和R-mode。因此,如果您在latex-mode-map中定义了一个快捷方式,那么它也应该在.rnw buffers中可用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16886778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档