我尝试在 GNU 屏幕会话中使用 vim,但是每当我在屏幕内打开 vim 时,语法突出显示使用的颜色与我在 GNU 屏幕外打开 vim 时使用的颜色完全不同。
为什么当我在屏幕内打开 vim 时,它语法高亮的颜色会改变,我该如何修复它?
注意:我在 iTerm2(OS X)中使用 spf13-vim。
编辑:这两张图片显示了在普通 bash 中使用 vim 和在屏幕内使用 vim 时的区别:
普通的:
屏幕内:
答案1
我也遇到过类似的问题,只不过这种情况发生在所有程序上,而不仅仅是 vim。我的解决办法是安装新版本的 screen(我使用 GNU screen 作为 byobu 的后端)。我使用 Macports 的“port install screen”安装了 screen,但我认为任何方法都可以。
在我的系统上,/usr/bin/screen --version
报告4.00.03 (FAU) 23-Oct-06
。但新屏幕报告4.02.01 (GNU) 28-Apr-14
。我无法确认版本升级是否是关键步骤,或者 Macports 屏幕是否以某种方式配置不同。
答案2
我会查看TERM
环境变量。运行 screen 时,它应该是screen-256color
。因此,尝试运行以下命令:
$ TERM=screen-256color vim
如果这确实有帮助,那么您可能应该更改设置,screen
以便TERM
自动为您正确设置。 (我不确定screen
配置,我使用过tmux
并且遇到过类似的问题,通过设置正确解决了TERM
)
答案3
简单的解决方法~/.screenrc
根据 Dmitry Frank 的提议,这对我来说很有用(即使编辑也没有用):
alias screen='TERM=xterm-256color screen'
我将其添加~/.bashrc
以便对我的用户来说永久有效。
答案4
我希望还不算太晚。
通常,在你的 ~/.vimrc 上可能会有一行
colorscheme yourColorScheme
其中 yourColorScheme 是 .vim 颜色配置文件之一,你可以在 /usr/share/vim/vim80/colors/ 中找到它,不带 .vim 扩展名。例如,我想使用 /usr/share/vim/vim80/colors/blue.vim 配置文件,我会这样做
colorscheme blue
如果此行未写在 .vimrc 中,则 vim 将选择默认的颜色配置文件,并且在使用屏幕时该选择可能会有所不同。
我遇到了同样的问题,并在文件末尾添加此行时解决了它。
唯一令人不快的是,你可能必须尝试 /usr/share/vim/vim80/colors/ 中列出的所有配置才能找到你喜欢的配置(我建议你打开一个终端,在其中打开 ~/.vimrc 来测试不同的色彩方案,在第二个终端中 vim 一个文件,它会显示你喜欢的语法颜色,在第三个终端中启动 screen 并 vim 同一个文件来查看新的语法颜色并进行比较)