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



但是在tmux外部,语法高亮显示很好。



我在tmux内外的$TERMxterm-256color。我还在.tmux.conf中添加了

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


,并在.vimrc中添加了此

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




我也尝试了tmux -2命令并阅读了这些问题。 >这是tmuxvim还是我的配置问题?

编辑:

我在GitHub Gist中的.vimrc

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

评论

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

我使用了tmux -2,但问题是相同的。

您可以共享整个.vimrc吗?

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

请尝试按照以下步骤。您有很多插件,因此其中一个可能会造成干扰。

#1 楼

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

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

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


在使用上述命令启动vim之后,我在vim中运行了此命令。

:syn on
:colorscheme solarized8_dark


这些突出显示了我的.vimrc文件。因此,我开始调试.vimrc。长话短说,set termguicolors是问题所在。如果我在set termguicolors中运行带.vimrc注释的vim,则可以在tmux中看到已更正的语法突出显示。

评论


我遇到过同样的问题。尽管让termguicolors在tmux上工作将是很棒的

–Filype
17年1月26日在11:29

#2 楼

在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


评论


这个在NVim上为我工作。在拱门和鱼壳上运行

– olleh
20-4-29在10:27



#3 楼

我实际上使它与termguicolors一起正常工作。这就是我
1。在我的〜/ .bash_profile中,我输入了这个内容:

export TERM=xterm-256color


在我的〜/ .vimrc里面,我有这个

syntax enable
colorscheme Spacegray

set termguicolors


,效果很好!参考

评论


:syn on:colorscheme太空灰:设置termguicolors

–abbood
18年5月9日在15:33



就我而言,它在没有设置termguicolors的情况下运行良好。还是要谢谢你!

–崔圭贤
20-04-19在5:24