在条件vim表达式中使用空格和字符



我尝试从这里实现Ingo的答案的一个版本

在我的_vimrc文件中,我有以下内容:

:autocmd BufEnter,FileType * if &ft ==# 'sql' colorscheme SummerFruit256 | elseif &ft ==? 'python' | colorscheme IntelliJ | else | colorscheme pyte | endif

我已经从Ingo的答案中取出了字符,并试图在一行上完成它,但我仍然得到E15。

在这些vim脚本中空格是如何处理的?为什么这个脚本不起作用呢?

Ingo的答案抄在下面。

:autocmd BufEnter,FileType *
   if &ft ==# 'c' || &ft ==# 'cpp' | colorscheme darkblue |
   elseif &ft ==? 'r' | colorscheme desert |
   else | colorscheme default |
   endif

字符告诉vim该命令应该与前一个命令在同一行(如果它在行首)。这使得长命令更具可读性。

空格被视为命令输入之间的分隔符,所以有多少个空格并不重要。

在您的命令中,我相信您在第一个if之后缺少了一个管道|

...   if &ft ==# 'sql' colorscheme SummerFruit256 |  ...
应该

...   if &ft ==# 'sql' | colorscheme SummerFruit256 |  ...

那么整个命令就是

:autocmd BufEnter,FileType * if &ft ==# 'sql' | colorscheme SummerFruit256 | elseif &ft ==? 'python' | colorscheme IntelliJ | else | colorscheme pyte | endif
注意:由于这些命令在您的vimrc文件中,因此您不需要添加前面的:

最新更新