我正在尝试创建"智能"缩写,这些缩写可以扩展到一些文本,然后移动光标。例如,在C模式中,我希望INC
扩展到#include <>
,光标位于<>标志。或者,在HTML模式下:BF
扩展为<b></b>
,光标位于正确的位置。
实现这一点的明智方法是什么(除了为所有这些定义函数并将它们绑定到一个键,我不想这样做,因为我更喜欢缩写)?
我衷心推荐Yasnippets。它似乎是为做你想做的事而设计的。
- EmacsWiki:Yasnippet
- ErgoEmacs Yasnippet综述
- GitHub上的Yasnippet
你也可以通过Elpa安装它。
我想你想要的是:
hippee-expand是一个交互式编译的Lisp函数`hippe-exp.el'。它注定会出现M-停顿。(嬉皮士扩展arg)
尝试使用多种方法在点之前展开文本。扩展
hippie-expand-try-functions-list' are tried in order, until a possible expansion is found. Repeated application of
嬉皮扩展中的函数依次插入可能的扩展。使用正数参数,直接跳到中的arg下一个函数这个列表。使用否定参数或仅使用C-u,撤消膨胀[返回]
它肯定会在我的系统上出现M-暂停,可能还没有在你的系统上。
定义缩写。比
M-x编辑缩写RET
第四个插槽接收一个函数。例如写入:
(lambda nil (forward-char -1))
以便在展开后向后移动一个字符。