2017-04-08 62 views
0

我喜欢_被视为大多数用途的关键字字符,但对于缩写我想_触发缩写。有没有办法自动做到这一点,或者是我最好的选择,在输入下划线之前按<C-]>?使用案例:如果我有一个很长的单词,我经常输入,我可能会有变量包含那个长单词(例如形式为myverylongname_foo_table的表名),并且希望在打字过程中激活缩写,只需按下下划线。Vim触发下划线的缩写?

+0

这可以用地图来解决,但是,我没有你的_USE case_理解的一部分:你所有的长名都有缩写吗? – sidyll

+0

我需要经常输入几个长名称/单词,并为这些单词创建了缩写。 – Kvass

+0

啊我明白了。我发布了地图答案,我认为这可能适合你。 – sidyll

回答

0

可以使用地图“覆盖”下划线行为:

inoremap _ <C-]>_ 
+0

完美,正是我所期待的。 – Kvass

0

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

autocmd InsertEnter * setl iskeyword-=_ 
autocmd InsertLeave * setl iskeyword+=_ 
+0

这有我不想引起的副作用,如搞砸自动补全。将接受没有这些缺点的答案。 – Kvass