Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim 如何指定哪些键可以扩展缩写?_Vim - Fatal编程技术网

Vim 如何指定哪些键可以扩展缩写?

Vim 如何指定哪些键可以扩展缩写?,vim,Vim,我试图用缩写来表示我的代码片段,但不希望它们被意外地扩展。例如,如果我有“For”缩写,当我写注释或变量名时,vim也会将其展开(主要是通过点击空格)。作为一种局部解决方案,我可以用大写字母写所有的名字,但要一直打字有点困难。我也可以将空间重新映射到,但是还有其他键可以扩展,并且可以重新映射其中的大多数键(例如(,;…)是我最不想做的事情。有一个叫做iskeyword的选项,它定义了什么符号是关键字,但据我所知,它也用于搜索和基本动作。我很乐意在展开时点击,所以对我来说最好的解决方案是将触发键限

我试图用缩写来表示我的代码片段,但不希望它们被意外地扩展。例如,如果我有“For”缩写,当我写注释或变量名时,vim也会将其展开(主要是通过点击空格)。作为一种局部解决方案,我可以用大写字母写所有的名字,但要一直打字有点困难。我也可以将空间重新映射到
,但是还有其他键可以扩展,并且可以重新映射其中的大多数键(例如
(,;
…)是我最不想做的事情。有一个叫做
iskeyword
的选项,它定义了什么符号是关键字,但据我所知,它也用于搜索和基本动作。我很乐意在展开时点击
,所以对我来说最好的解决方案是将触发键限制在

问题是:是否允许我更改非关键字键并且不影响搜索和移动?我是否可以禁用自动扩展并将
映射到
以进行手动扩展

PS:我可以用映射做我想做的一切

autocmd FileType php inoremap <buffer><expr><Esc>
    \ is#pattern('for\%#') ? "\<BS>\<BS>\<BS>for($i = 0; $i < 10; $i++) {\<CR>}<Esc>" :
    \ "\<Esc>"
autocmd文件类型php inoremap
\是#模式(\%#')?“\\\for($i=0;$i<10;$i++){\}”:
\ "\"

然而,缩写是一种更好的方法。它更简单,更干净,它突出了特殊的键。

我不知道您最初问题的答案,但似乎更好的解决方案可能是使用vim的一个代码段插件。它将允许您使用您想要的代码段,而不仅仅是由空格触发。因为我已经没有太多的代码片段我不想安装任何插件。我不知道您最初的问题的答案,但似乎更好的解决方案可能是使用vim的一个代码片段插件。它将允许您使用所需的代码片段,而不仅仅是由空间触发。因为我没有太多的代码片段,所以我不想安装任何代码片段插件。