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