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

时间:2013-05-26 17:42:55

标签: vim

我尝试从here

实施Ingo的答案版本

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

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

我从Ingo的答案中取出了\个字符并尝试在一行中完成,但我仍然得到了E15。

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

1 个答案:

答案 0 :(得分:2)

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文件中,因此您不需要前导: