在编辑R文件时,我似乎无法在ess模式下使用缩写。
我有ess-mode hook来激活缩写模式,但我的全局缩写没有扩展。当我add-mode-abbrev
时,我可以添加一个缩写,但它不会写入我的缩写文件,当然也不会被扩展(在read-abbrev-file
之后或重新启动)。
如果我手动将这样的内容添加到我的缩写文件中并重新加载:
(define-abbrev-table 'ess-mode-abbrev-table
'(
("-=" "<-" nil 0)
))
它也不起作用。
如何让ess-mode识别我的缩写?
答案 0 :(得分:2)
我正在使用在本地设置ess-mode-abbrev-table的解决方法。首先我定义了缩写表,以防我稍后加载我的缩写表并且在启动ESS时不希望出错:
(define-abbrev-table 'ess-mode-abbrev-table nil)
(add-hook 'ess-mode-hook
(lambda ()
(setq local-abbrev-table ess-mode-abbrev-table)))
我更喜欢在解释器中使用相同的缩写,因此这很方便:
(dolist (hook '(ess-mode-hook inferior-ess-mode-hook))
(add-hook hook
(lambda ()
(setq local-abbrev-table ess-mode-abbrev-table))))
答案 1 :(得分:0)
缩写词应具有单词语法 - 内部使用forward-word
。
编写/重新定义缩写是一项代价高昂的操作,需要几秒钟。因此,在任何编辑/定义之后都不会这样做 - 除非明确要求 C-x C-s 。通常在会话结束时写入缩写文件。