在 vim 和 putty 中使用配色方案

Kev*_*Kev 18 centos vim colors putty

我正在尝试在位于此处的 CentOS 5.6 x64 上的 VIM 7.0 中使用沙漠配色方案:

http://hans.fugal.net/vim/colors/desert.vim

我已经下载了文件并将其保存在我的~/.vim/colors目录中。然后我通过发出以下命令告诉 VIM 使用配色方案:

:colors desert
Run Code Online (Sandbox Code Playgroud)

它应该是这样的:

在此处输入图片说明

但是我得到了这个:

在此处输入图片说明

我使用 PuTTY 0.60以普通用户(不是rootsudo)身份登录到此服务器,并在 下设置了以下选项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.