Kev*_*Kev 18 centos vim colors putty
我正在尝试在位于此处的 CentOS 5.6 x64 上的 VIM 7.0 中使用沙漠配色方案:
我已经下载了文件并将其保存在我的~/.vim/colors
目录中。然后我通过发出以下命令告诉 VIM 使用配色方案:
:colors desert
Run Code Online (Sandbox Code Playgroud)
它应该是这样的:
但是我得到了这个:
我使用 PuTTY 0.60以普通用户(不是root
或sudo
)身份登录到此服务器,并在 下设置了以下选项Window -> Colours
:
允许终端指定 ANSI 颜色 - 选中 允许终端使用 256 色模式 - 选中 粗体测试是不同的颜色 - 检查 尝试使用逻辑调色板 - 未选中 使用系统颜色 - 未选中
如果我sudo
或登录root
并尝试相同的方式,除了黑色背景上的白色文本外,我根本看不到任何颜色。
这些方案是否主要针对 gVIM 而 PuTTY 只是无法显示这些颜色?
我在谷歌上搜索了一下,并遇到了诸如这篇文章之类的文章,但它们似乎不起作用。
use*_*686 26
默认情况下,PuTTY 将自身显示为xterm
. 各种程序用来确定终端功能的terminfo数据库表示xterm
仅支持八种颜色:
$ infocmp -1L xterm | grep max_colors
Run Code Online (Sandbox Code Playgroud)
这意味着即使您的 Xterm 版本确实支持 256 色模式,程序也不会知道它。
最简单的解决方法是将 $TERM 环境变量设置为xterm-256color
.
(在你的〜/ .profile文件,你可以使用:
if [ "$TERM" = xterm ]; then TERM=xterm-256color; fi
)
您可以通过Configuration告诉 PuTTY始终将自己标识为? 联系 ?数据 ?终端类型字符串。xterm-256color
注:如果您使用#1或#2,您连接到不服务器具有的apropriate terminfo项,所有TUI程序将打破。
您还't_Co'
可以在 vim 中设置选项256
以覆盖 terminfo 值。
if &term == "xterm"
set t_Co=256
endif
Run Code Online (Sandbox Code Playgroud)或者您可以编辑terminfo数据库。
$ infocmp -L -1 xterm | sed -r 's/(max_colors)#[0-9]+/\1#256/' > /tmp/xterm
$ tic /tmp/xterm
Run Code Online (Sandbox Code Playgroud)
更新后的条目将保存在~/.terminfo
.