tmux中没有语法突出显示


16

我安装tmux在iTerm 2中。(内部版本3.0.13)在中执行vimtmux,语法高亮显示如下。

没有语法突出显示

但是在tmux之外,语法高亮看起来很好。

普通语法高亮

我的$TERM内外tmux是xterm-256color。我还加了

set -g default-terminal "screen-256color"

.tmux.conf并添加了这个

set t_Co=256
set t_AB=m
set t_AF=m
if &term =~ '256color'
    set t_ut=
endif

在中.vimrc

我还尝试了tmux -2命令并阅读了这些问题。

在tmux模式下丢失vim颜色方案

使用Solarized的iTerm2中的vim颜色不正确

这是一个问题tmuxvim或者我的配置?

编辑:

.vimrc在GitHub中

https://gist.github.com/sohnryang/3c63397f332f2e30c7d7b2a83c3c9f52


当使用-2选项启动tmux时会发生什么:tmux -2。最好在tmux中没有会话时。
grodzik

我用过tmux -2,但是问题是一样的。
sohnryang '16

你能分享全部.vimrc吗?
grodzik '16

1
@sohnryang“也许你不应该”的哪一部分不明白?
muru

1
尝试执行以下步骤。您有很多插件,因此其中一个可能会造成干扰。
马丁·图尔诺伊

Answers:


8

好吧,我自己解决了这个问题。

正如@ Carpetsmoker♦所说,我开始怀疑我.vimrc是个问题。我读了这个问题,并在tmux中使用此命令启动了vim。

vim -u NONE -U NONE -N ~/.vimrc

用上面的命令启动vim之后,我在vim中运行了该命令。

:syn on
:colorscheme solarized8_dark

这些突出显示了我的.vimrc文件。因此,我开始调试.vimrc

长话短说,set termguicolors是问题所在。如果我在vim中运行带有set termguicolors注释的.vimrc,我会在tmux中看到正确的语法高亮显示。


我遇到过同样的问题。虽然可以很好地termguicolors研究tmux
Filype

4

从vim手册::h termguicolors建议阅读:h xterm-true-color

Sometimes setting 'termguicolors' is not enough and one has to set the |t_8f|
and |t_8b| options explicitly.  [ ... these are]  only set [to some default] when `$TERM` is `xterm`.

我使用类似于以下条件:

if &term =~# '256color' && ( &term =~# '^screen'  || &term =~# '^tmux' )
    let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
    let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
    set termguicolors
endif

3

我实际上使它与可以很好地工作termguicolors。这就是我所做的1.在我的〜/ .bash_profile中,我这样写:

export TERM=xterm-256color

在我的〜/ .vimrc中,我有这个

syntax enable
colorscheme Spacegray

set termguicolors

而且效果很好!参考


:syn上:colorscheme太空灰:设置termguicolors
大约
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.