.vimrc中的条件颜色方案

.vimrc中的条件颜色方案,vim,Vim,我正在使用vim和MacVim。我有一个256色的配色方案,我喜欢我的MacVim,但如果我把它加载到常规的vim中,它显然不起作用(我得到的是闪烁)。我希望能够在我的所有系统上使用相同的vim配置,因此: 是否有办法检查.vimrc中的调色板大小,并相应地设置两种配色方案之一?如果这不可行,那么检查MacVim与vim也可以。您有几个选择 我认为您最好的选择是在.vimrc中加载一个配色方案,在.gvimrc中加载另一个配色方案(或者在您的情况下,根本不要在.vimrc中加载配色方案)。只有在

我正在使用vim和MacVim。我有一个256色的配色方案,我喜欢我的MacVim,但如果我把它加载到常规的vim中,它显然不起作用(我得到的是闪烁)。我希望能够在我的所有系统上使用相同的vim配置,因此:


是否有办法检查
.vimrc
中的调色板大小,并相应地设置两种配色方案之一?如果这不可行,那么检查MacVim与vim也可以。

您有几个选择

我认为您最好的选择是在
.vimrc
中加载一个配色方案,在
.gvimrc
中加载另一个配色方案(或者在您的情况下,根本不要在
.vimrc
中加载配色方案)。只有在运行MacVim的GUI版本时,才会加载
.gvimrc
颜色方案

如果不想在多个文件中拆分配置,也可以在
.vimrc
中使用类似的条件:

if has('gui_running')
    colorscheme mycrazycolors
endif
最后,如果您确实想知道可用颜色的数量,可以检查
t\u Co
设置:

:echo &t_Co
在MacVim的GUI版本中,
t_Co
是空的,因此您可能仍然希望使用
has()
技术的变体。事实上,默认的
.vimrc
执行类似的操作来确定何时启用语法突出显示:

if &t_Co > 2 || has("gui_running")
    syntax on
endif
为了完整起见,我应该提到,您还可以扩展colorscheme文件,以包括颜色端子的合理设置。然而,这是一个相当大的工作量,而且可能更容易切换到支持更多颜色的终端应用程序

有关更多信息,请参见以下主题:

:help has()
:help termcap
:help termcap-colors

我最近做了一些类似的事情,在我们所有的Linux系统上使用相同的.vimrc,但是如果我在Ubuntu上运行,请使用Ubuntu monospace字体:

if (match(system("cat /etc/issue"), "Ubuntu") != -1)
    set guifont=Ubuntu\ Mono\ 13
else
    set guifont=Monospace\ 11
endif
在我看来,如果您在Mac或其他设备上运行,您可以执行类似的操作来检测:

if (match(system("uname -s"), "Darwin") != -1)
    colorscheme macscheme
else
    colorscheme otherscheme
endif

请注意,我过去常常发现uname在OS X上报告了什么。我手头没有一台Mac电脑可以试用,但我想这是准确的。

感谢这些,特别是
。gvimrc
-我不知道有一台。仅供参考:
uname-s
在我的Mac上打印
Darwin