我正在尝试为我的代码片段使用缩写,但不希望它们被意外扩展。例如,如果我有“ for”的缩写,vim也会在我写注释或变量名时(主要是按空格)将其扩展。作为部分解决方案,我可以用大写字母写所有名称,但一直很难键入它们。我还可以将空间重新映射到<C-V><Space>
,但是还有其他一些可以扩展的键,并且重新映射其中的大多数键(例如(,;
...)是我最后要做的事情。好吧,有一个名为iskeyword
的选项,它定义了什么符号是关键字,但据我所知,它也用于搜索和基本动作中。我很愿意在扩展时按<Esc>
,所以对我来说最好的解决方法是将触发键限制为<Esc>
。
问题:我是否可以更改非关键字键,并且不影响搜索和移动?我可以禁用自动扩展并将<Esc>
映射到<C-]><Esc>
进行手动扩展吗?
PS :我可以做所有我想做的映射。
autocmd FileType php inoremap <buffer><expr><Esc>
\ is#pattern('for\%#') ? "\<BS>\<BS>\<BS>for($i = 0; $i < 10; $i++) {\<CR>}<Esc>" :
\ "\<Esc>"
但是,缩写是一种更好的方法。更容易,更干净,突出显示特殊键。