0

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

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

语法有问题吗?我怎样才能让它工作?

4

2 回答 2

2

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

于 2013-03-01T03:25:19.037 回答
0

字符:和空格?... 不被认为是单词的一部分(根据 Emacs 定义),并触发abbrev机制,该机制检测在此之前键入的单词:是否是缩写词并且必须扩展(使用 Word缩写)。

因此,虽然s:定义了缩写,但输入:of

s:

使 Emacs 触发s作为缩写的搜索。在顺序词中,包含标点符号的缩写不能扩展。

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

8s or s8

--

有一个正则表达式可以识别触发缩写搜索的字符,但它仅适用于动态缩写

我试图修改后向词的行为,但在最近的 Emacs 版本中它甚至没有用于捕获后向词(缩写)。

于 2013-02-28T20:57:39.450 回答