在tmux模式下丢失vim色彩scheme
我正在运行iterm2,当我在tmux模式下,我在vim中设置的colorscheme不显示。 只有我在iterm中设置的配色scheme。 如果我从shell运行vim,colorscheme看起来是正确的 – 只有当我在tmux模式下。
我试过设置:colorscheme molokai
在vim(见下面的截图),它不会改变 – 再次,iterm2的默认colorscheme仍然存在。
我错过了一些设置iterm或tmux.conf? 我的dotfles在这里github上。
任何帮助将是伟大的:)
我有同样的问题。 唯一的区别是我使用solarize
而不是molokai
。
为了解决这个问题,我在~/.bashrc
设置了一个别名:
alias tmux="TERM=screen-256color-bce tmux"
并在~/.tmux.conf
设置default-terminal
选项:
set -g default-terminal "xterm"
最后,做$ source ~/.bashrc
来加载新的别名。
正如@romainl上面提到的,我需要强制tmux通过添加-2
标志来使用256种颜色:
$ tmux -2
我添加alias tmux='tmux -2'
到我的bash_profile,所以,我不会忘记:)
我尝试了上面的所有解决scheme,最后为我工作的是在.tmux.conf
放入以下.tmux.conf
:
set -g default-terminal "xterm-256color"
所以这有点过时,但可能值得一提的是,使用屏幕常常会打破Home键和End键。 运用
export TERM="xterm-256color"
应保持这些function,并允许配色scheme(或电力线)正常工作。
我刚刚发现为什么我有很多困惑。 我和其他人一样,在使默认terminal设置生效的时候遇到困难。 我记得我在后台有一个tmux会话。 我重新连接了会话,closures了我的进程,并closures了所有的tmux进程。 下次我重新启动tmux时, .tmux.conf
的默认terminal设置开始生效。 我不知道其他人是否也这样做,但我build议在修改.tmux.conf
文件之前closures所有的tmux进程。
我的设置在我的本地机器(带iTerm2的OSX 10.9.5)上工作,没有对.bashrc
或.bash_profile
进行任何修改。 我所做的只是将set -g default-terminal "xterm-256color"
行添加到~/.tmux.conf
并重新启动了所有的tmux进程。
我得到了我的远程设置(ssh到Ubuntu 14.04)以完全相同的方式工作,没有任何修改.bashrc
。 我只是在远程机器上添加了set -g default-terminal "xterm-256color"
到~/.tmux.conf
,并重新启动了所有远程的tmux进程。
您可以通过在tmux会话中执行echo $TERM
来testingVim正在看到的内容。 它一直说screen
的值,直到我重新启动所有的tmux进程,在这一点上,它反映了xterm-256color
的预期。
希望有所帮助。
我需要vim正确地显示在Ubuntuterminal的tmux和Windows上的cygwin / mintty。 我通过结合这样的答案得到了它的工作。
在.bashrc中:
alias tmux="tmux -2"
在.vimrc中:
" use 256 colors in terminal if !has("gui_running") set t_Co=256 set term=screen-256color endif " fix cursor display in cygwin if has("win32unix") let &t_ti.="\e[1 q" let &t_SI.="\e[5 q" let &t_EI.="\e[1 q" let &t_te.="\e[0 q" endif
基于这个问题的答案, 这个Vim wiki页面和这个块光标问题
如果有人需要24位色彩支持:
Tmux支持从2.2版本开始的24位色彩。 如果您的terminal支持24位颜色,请将您的terminal添加到terminal覆盖设置。 例如,
set -ga terminal-overrides ",xterm-256color:Tc"
我的环境清单:
- macOS Sierra 10.12.3
- iTerm2 3.0.14(报告terminaltypes是
xterm-256color
) - neovim 0.1.7(通过添加:
xterm-256color
到.vimrc
来启用24位颜色) - tmux 2.3(添加
set -ga terminal-overrides ",xterm-256color:Tc"
到.tmux.conf
)
没有什么我需要添加.bashrc
或.zshrc
。
希望这可以帮助。
我已经尝试了上面的所有说明,而且我发现最重要的是我必须在我的.bashrc文件中明确添加以下行。
export TERM=screen-256color
我不知道为什么别名tmux =“TERM = screen-256color-bce tmux”不能正常工作。 我使用Sierra 10.12.1。
如果使用tmuxinator
或mux
,则需要将这些添加到.bashrc
或.zshrc
:
alias tmux='TERM=screen-256color tmux -2' alias tmuxinator='TERM=screen-256color tmuxinator' alias mux='TERM=screen-256color mux'
这些力量在terminal中使用256色。
然后tmux
, tmuxinator
和mux
命令都将工作。
为了设置正确的颜色,摆脱Ubuntu和Mac的渲染问题:
检查这个
从tmux手册页,添加标志如下:
tmux -2
这个-2
标志强制tmux在256色模式下运行。
这对我有用
如果你发现自己和我一样,以上都没有工作..试试这个:
在.tmux.conf
:
set -g default-terminal "xterm"
在bashconfiguration(也许.bashrc
或.bash_profile
):
alias tmux="tmux -2"
然后运行:
killall tmux
然后重新启动tmux
我没有太多的运气试图导出不同的TERM
或在我的.tmux.conf
设置默认terminal。
我在tmux中修复vim颜色的解决scheme是将这一行添加到.tmux.conf
:
set -g terminal-overrides 'xterm:colors=88'
我不知道为什么这个覆盖是必要的,因为我的TERM=xterm
,我也有iTerm设置为xterm,但它似乎工作。
在.tmux.conf中添加下面一行,用macOS Sierra 10.12.6,
设置-g default-terminal“screen-256color”