我可以将一些宏后处理绑定到Emacs缩写吗?

时间:2014-11-06 13:53:25

标签: emacs macros abbreviation

我试图创造&#34; smart&#34;缩写,扩展为某些文本,然后移动光标。例如,在C模式下,我希望INC扩展到#include <>,光标位于&lt;&gt;之间。迹象。或者,在HTML模式下:BF展开到<b></b>,光标位于正确位置。

什么是一种明智的方式来解决这个问题(没有为所有这些定义功能并将它们绑定到一个我不想做的关键,因为我更喜欢缩写)?

3 个答案:

答案 0 :(得分:2)

我衷心地推荐Yasnippets。它似乎旨在完全按照您的意愿行事。

您也可以通过Elpa安装它。

答案 1 :(得分:0)

我认为你在寻找的是:

  

hippie-expand是一个交互式编译的Lisp函数   `嬉皮exp.el”。它必然会出现M-pause。 (hippie-expand arg)

     

尝试使用多种方法在点之前展开文本。扩张   hippie-expand-try-functions-list' are tried in order, until a possible expansion is found. Repeated application of hippie-expand'中的函数连续插入可能的扩展。有了   正数字参数,直接跳转到arg下一个函数中   这个清单。有了一个否定的论点或只是C-u,撤消   扩展

     

[返回]

我的系统上有M-pause的约束,可能还不在你的系统上。

答案 2 :(得分:0)

定义缩写。比

M-x edit-abbrevs RET

第四个插槽接收一个功能。例如写:

(lambda nil (forward-char -1))

为了在扩张后向后移动一个字符。