我对 emacs 和贝叶斯数据分析以及 JAGS 软件比较陌生。我想修改 ess jags-d.el 文件以获得<-的F8快捷方式,就像在使用 ESS 的 R 模式中一样。是否可以 ?
我希望我的问题很清楚,并为我糟糕的英语感到抱歉。
我不使用 JAGS,但据我在 ESS 手册中看到的:
5.4 中的更改/新功能:
ESS[BUGS] 和 ESS[JAGS]:现在键入 = 会导致 <-。
不幸 的是ess-smart-underscore
不能在错误模式下工作。
简单的答案是:
(define-key ess-bugs-mode-map [f8] (lambda() (interactive) (insert " <- ")))
这只是绑定f8到 insert <-
。
要在错误中实现与 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))))
现在,按_一次会得到你<-
,两次 - _
。