我尝试从这里实现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文件中,因此您不需要添加前面的: