当我添加缩写时
("s:", "std::")
当上面和下面的其他缩写起作用时,它不起作用。
语法有问题吗?我怎样才能让它发挥作用?
答案 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中的落后词(缩写)。