添加一些ESS jags模式的快捷方式

时间:2011-01-29 14:54:57

标签: r ess

我对emacs和贝叶斯数据分析以及JAGS软件相对较新。 我想修改ess jags-d.el文件以获得< - F8 快捷方式,就像使用ESS的R模式一样。可能吗 ?

我希望我的问题很清楚,对不起我的英语很差。

2 个答案:

答案 0 :(得分:2)

我不使用JAGS,但据我在ESS手册中可以看到:

  

5.4中的更改/新功能:

     

ESS [BUGS]和ESS [JAGS]:输入=现在   结果为< - 。

答案 1 :(得分:2)

不幸的是ess-smart-underscore无法在错误模式下运行。

简单的答案是:

(define-key ess-bugs-mode-map [f8] (lambda() (interactive) (insert " <- ")))

这只是绑定 f8 来插入<-

要在ess中实现完全相同的行为,请将以下内容放入.emacs中:

(define-key ess-bugs-mode-map (kbd "_") 'bugs-smart-underscore)

(defun bugs-smart-underscore ()
  (interactive)
  (let ((assign-len (length ess-S-assign)))
    (if (and
         (>= (point) (+ assign-len (point-min))) ;check that we can move back
         (save-excursion
           (backward-char assign-len)
           (looking-at ess-S-assign)))
        ;; If we are currently looking at ess-S-assign, replace it with _
        (progn
          (delete-backward-char assign-len)
          (insert "_"))
      (delete-horizontal-space)
      (insert ess-S-assign))))

现在,按 _ 一次会得到<-,两次 - _