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

我可以将一些宏后处理绑定到Emacs缩写吗?,emacs,macros,abbreviation,Emacs,Macros,Abbreviation,我试图创建“智能”缩写,将其扩展为一些文本,然后移动光标。例如,在C模式下,我希望INC扩展到#include,光标位于符号之间。或者,在HTML模式下:BF展开为,光标位于右侧 什么是一种聪明的方法(除了为所有这些定义函数并将它们绑定到一个键之外,我不想这样做,因为我更喜欢缩写)?我想你想要的是: hippie expand是中的一个交互式编译Lisp函数 `嬉皮士。它注定要暂停。(嬉皮扩展arg) 尝试使用多种方法在点之前展开文本。扩张 hippie expand try functions

我试图创建“智能”缩写,将其扩展为一些文本,然后移动光标。例如,在C模式下,我希望
INC
扩展到
#include
,光标位于符号之间。或者,在HTML模式下:
BF
展开为
,光标位于右侧


什么是一种聪明的方法(除了为所有这些定义函数并将它们绑定到一个键之外,我不想这样做,因为我更喜欢缩写)?

我想你想要的是:

hippie expand是中的一个交互式编译Lisp函数 `嬉皮士。它注定要暂停。(嬉皮扩展arg)

尝试使用多种方法在点之前展开文本。扩张
hippie expand try functions list'中的函数按顺序进行尝试,
直到找到可能的扩展。重复应用
hippie expand'连续插入可能的扩展。用一个 正数值参数,直接跳到中的arg下一个函数 这张单子。使用否定参数或C-u,撤消 扩张

[返回]

在我的系统上肯定会出现M-pause,但在你的系统上可能还没有。

Define abbrev。

M-x编辑缩写RET

第四个插槽接收一个函数。例如写:

(lambda nil (forward-char -1))

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

我衷心推荐Yasnippets。它似乎被设计成你想要的样子


您也可以通过Elpa进行安装。

请在2020年试用供参考yasnippet有了一个新家yasnippet现在绝对是我的最爱。谢谢