让vim在远程终端(Xshell4/SecureCRT)下得到像gui一样的colorscheme显示效果

来源:互联网 发布:膳魔师淘宝旗舰店 编辑:程序博客网 时间:2024/05/01 12:35

这个问题困扰了很久,一直用远程终端连接主机写代码,默认用的是colorsheme evening。效果也是不错的,但是一直看看腻了,羡慕gui下很多colorscheme的华丽的显示效果。

于是下载了molokai颜色模板,发现效果与预期不一样。


实际显示效果如上图,根本不是molokai的配色方案。

后来查看colorsheme模板,发现里面有两种模式,就是term以及gui。分别对应终端连接(比如Secure CRT)以及gui连接(GNOME)。 

/usr/share/vim/vim72/colors/evening.vim的部分代码:

...hi ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=Whitehi IncSearch term=reverse cterm=reverse gui=reversehi ModeMsg term=bold cterm=bold gui=boldhi StatusLine term=reverse,bold cterm=reverse,bold gui=reverse,boldhi StatusLineNC term=reverse cterm=reverse gui=reversehi VertSplit term=reverse cterm=reverse gui=reversehi Visual term=reverse ctermbg=black guibg=grey60hi VisualNOS term=underline,bold cterm=underline,bold gui=underline,boldhi DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red...

经过搜索,发现可以通过gui2term.py转换colorschema,使在终端下的显示效果达到和gui下一致,详情请移步这里。

其原理也就是根据rgb.txt中的对应关系,将#FFFFFF格式的颜色对应装换为相近的256色表示,同时让终端支持256色终端显示,做到这点需要在将colorschema进行转换后,再在.vimrc中加入这行命令:

set t_Co=256

这个时候我豁然开朗了,原来这些非常著名的模板,例如molokai.vim以及solarized.vim都是原生支持256色终端效果的,不用其他任何操作,只要加上上面一行命令就可以了。经过试验,果然如此,个人更喜欢molokai的颜色搭配方案。效果如下图:


怪不得我之前使用solarized但是没有达到预期效果的原因就是这行命令。

原创粉丝点击