缩写不在emacs中工作

时间:2013-02-28 18:42:44

标签: emacs

当我添加缩写时 ("s:", "std::")

当上面和下面的其他缩写起作用时,它不起作用。

语法有问题吗?我怎样才能让它发挥作用?

2 个答案:

答案 0 :(得分:1)

正如ring0所解释的那样,它不起作用,因为默认情况下,缩写只有在由“单词成分”和“:”不是单词成分的字符组成时才有效。 对于给定的表,您可以更改此规则,例如(abbrev-table-put <table> :regexp "\\<\\(\\w+:?\\)\\W*"),其中像"\\<\\(\\w+:?\\)\\W*"这样的正则表达式几乎会重现默认行为。

答案 1 :(得分:0)

字符:以及空格? ...不被视为的一部分(根据Emacs定义)并触发 abbrev 机制,用于检测在:之前键入的单词是否为缩写并且必须展开(Using Word Abbrev)。

因此,在定义s:缩写时,输入<{p>}的:

s:

使Emacs触发s的缩写搜索。换句话说,不能扩展包含标点符号的缩写。

更简单的解决方案是选择数字+字母,例如

8s or s8

-

有一个 regexp 标识触发缩写搜索的字符是什么,但它仅适用于dynamic abbrevs

我尝试修改落后词的行为,但它甚至不用于捕获最近版本的Emacs中的落后词(缩写)。