GNU screen 改变 vim 语法高亮颜色

GNU screen 改变 vim 语法高亮颜色

我尝试在 GNU 屏幕会话中使用 vim,但是每当我在屏幕内打开 vim 时,语法突出显示使用的颜色与我在 GNU 屏幕外打开 vim 时使用的颜色完全不同。

为什么当我在屏幕内打开 vim 时,它语法高亮的颜色会改变,我该如何修复它?

注意:我在 iTerm2(OS X)中使用 spf13-vim。

编辑:这两张图片显示了在普通 bash 中使用 vim 和在屏幕内使用 vim 时的区别:

  • 普通的: 普通的 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 同一个文件来查看新的语法颜色并进行比较)

相关内容