Vim触发器缩写在下划线上?

Vim触发器缩写在下划线上?,vim,abbreviation,Vim,Abbreviation,我喜欢u在大多数情况下被视为关键字字符,但对于缩写,我希望u触发缩写。是否有办法自动执行此操作,或者在键入下划线之前按是我的最佳选择 用例:如果我有一个我经常键入的长单词,我可能会有包含长单词的变量(例如MyVyyLangNAME.FoeFixType表的表名),并且希望缩写在键入之后激活,在按下下划线之后。 < P>找到一个工作解决方案。我可以设置一个自动命令,在我进入插入模式时从iskeyword定义中删除uu,并在我离开时恢复它 autocmd InsertEnter * setl isk

我喜欢u在大多数情况下被视为关键字字符,但对于缩写,我希望u触发缩写。是否有办法自动执行此操作,或者在键入下划线之前按
是我的最佳选择


用例:如果我有一个我经常键入的长单词,我可能会有包含长单词的变量(例如MyVyyLangNAME.FoeFixType表的表名),并且希望缩写在键入之后激活,在按下下划线之后。

< P>找到一个工作解决方案。我可以设置一个自动命令,在我进入插入模式时从
iskeyword
定义中删除uu,并在我离开时恢复它

autocmd InsertEnter * setl iskeyword-=_
autocmd InsertLeave * setl iskeyword+=_
您可以使用映射“覆盖”下划线行为:

inoremap _ <C-]>_
inoremap\_

这有我不想产生的副作用,比如搞砸了自动完成。我会接受一个没有这些缺点的答案。这可以用地图来解决,但有一部分我在你的用例中不明白:你所有的长名字都有缩写吗?有一些长名字/单词我必须经常键入,我为它们创建了缩写。啊,我明白了。我贴了一张地图回答,我想这可能适合你。太好了,正是我想要的。