0

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

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

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

我已经\从 Ingo 的答案中删除了字符,并尝试在一行中完成,但我仍然得到 E15。

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

4

1 回答 1

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

于 2013-05-26T17:49:53.990 回答