我正在运行iterm2,当我在tmux模式下,我在vim中设置的配色方案不显示。只有我设定的配色方案。如果我从shell运行vim,配色方案显示正确-只有当我在tmux模式。
我尝试过在vim中设置:colorscheme molokai(见下面的截图),它没有改变-再次,iterm2的默认配色方案保持不变。
我是否遗漏了对iterm或tmux.conf的一些设置?我的图都在github上。
我正在运行iterm2,当我在tmux模式下,我在vim中设置的配色方案不显示。只有我设定的配色方案。如果我从shell运行vim,配色方案显示正确-只有当我在tmux模式。
我尝试过在vim中设置:colorscheme molokai(见下面的截图),它没有改变-再次,iterm2的默认配色方案保持不变。
我是否遗漏了对iterm或tmux.conf的一些设置?我的图都在github上。
正如上面提到的@romainl,我需要通过添加-2标志来强制tmux使用256种颜色:
$ tmux -2
我添加了别名tmux='tmux -2'到我的bash_profile,所以,我不会忘记:)
我也有同样的问题。唯一不同的是我使用的是太阳能而不是莫洛凯。
为了解决这个问题,我在~/.bashrc中设置了一个别名:
alias tmux="TERM=screen-256color-bce tmux"
在~/.tmux.conf中设置default-terminal选项:
set -g default-terminal "xterm"
最后,执行$ source ~/。Bashrc加载新别名。
这有点过时,但值得一提的是,使用screen通常会破坏Home和End键。使用
export TERM="xterm-256color"
它应该保持这些功能,并允许配色方案(或电力线)工作良好。
我尝试了上面所有的解决方案,最后对我有用的是在.tmux.conf中放入以下几行:
set -g default-terminal "xterm-256color"
在我的.tmux.conf中,我并没有尝试导出一个不同的TERM或设置默认终端。
我在tmux中修复vim颜色的解决方案是在.tmux.conf中添加这一行:
set -g terminal-overrides 'xterm:colors=88'
我不确定为什么需要这种重写,因为我的TERM=xterm,我也将iTerm设置为xterm,但它似乎是有效的。
I just discovered why I was having a lot of confusion. I, like others here, was having a difficult time getting the default-terminal setting to take effect. I remembered that I had a tmux session in the background. I re-attached my session, closed out my processes, and closed ALL tmux processes. The next time I restarted tmux the default-terminal setting in .tmux.conf began to take effect. I don't know if others are doing this as well but I recommend closing all tmux processes before modifying the .tmux.conf file.
我让我的设置在我的本地机器上工作(OSX 10.9.5 with iTerm2),没有对.bashrc或.bash_profile进行任何修改。我所做的只是将行set -g default-terminal "xterm-256color"添加到~/.tmux.conf并重新启动所有tmux进程。
我让我的远程设置(ssh到Ubuntu 14.04)以完全相同的方式工作,而不需要对.bashrc进行任何修改。我只是在远程机器上的~/.tmux.conf中添加了set -g default-terminal "xterm-256color",并重新启动了所有远程tmux进程。
你可以在tmux会话中通过echo $TERM来测试Vim所看到的内容。它一直将screen作为值,直到我重新启动所有tmux进程,此时它如预期的那样反射xterm-256color。
希望这能有所帮助。
我需要vim在ubuntu的终端上使用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页面和这个块游标问题
如果你使用tmuxinator或mux,你需要在.bashrc或.zshrc中添加这些:
alias tmux='TERM=screen-256color tmux -2'
alias tmuxinator='TERM=screen-256color tmuxinator'
alias mux='TERM=screen-256color mux'
这些力用256色在终端上。
然后tmux, tmuxinator和mux命令都将工作。
如果你发现自己的处境和我一样,那上面的方法都没用。试试这个:
在.tmux.conf:
set -g default-terminal "xterm"
在bash配置中(可能是.bashrc或.bash_profile):
alias tmux="tmux -2"
然后运行:
killall tmux
然后重新启动tmux
我已经尝试了上面所有的指令,我发现最重要的事情是我必须显式地在我的.bashrc文件中添加以下一行。
export TERM=screen-256color
我不知道为什么别名tmux="TERM=screen-256color-bce tmux"不工作。 我使用的是Sierra 10.12.1。
如果有人需要24位颜色支持:
Tmux从2.2版开始支持24位颜色。如果您的终端支持24位颜色,请将您的终端添加到终端覆盖设置。例如,
set -ga terminal-overrides ",xterm-256color:Tc"
我的环境清单:
macOS Sierra 10.12.3 iTerm2 3.0.14(报表终端类型为xterm-256color) neovim 0.1.7(通过添加:xterm-256color到.vimrc来启用24位颜色) tmux 2.3(在.tmux.conf中添加set -ga terminal-override ",xterm-256color:Tc")
我不需要在.bashrc或.zshrc中添加任何其他内容。
希望这能有所帮助。
在macOS Sierra 10.12.6下,在.tmux.conf中添加以下一行对我来说是有效的,
Set -g default-terminal "screen-256color"
因为这是谷歌上的第一个结果,因为上面没有一个有用..我想张贴这个,以便有人可能会发现它有帮助
在. vimrc:
set background=dark
set t_Co=256
HTH
只是不得不处理这个问题,尽管之前发布的所有答案都很有帮助,但它们并没有解决我的问题。
我的问题是通过删除以下行在我的.vimrc:
set termguicolors
这是多余的另一个指令。
现在,在我的.tmux.conf之前的答案中找到以下一行:
export TERM="screen-256color"
一切都是美好和丰富多彩的。
我使用的是Ubuntu bionic 18.04.4 LTS和tmux 2.6。 我也有同样的问题,它可以通过简单地将此添加到.bashrc来解决
export TERM=screen-256color
当然,别忘了注明出处。 源~ / . bashrc
或者重启你的终端机
在我的.tmux.conf中使用这两行对我来说是有效的,我使用的是带有Alacritty的Ubuntu 20.04。
set -g default-terminal "tmux-256color"
set -ag terminal-overrides ",alacritty:RGB"
在一篇关于alacitty回购的文章中找到了它们,在YodaEmbedding提供的评论中:
https://github.com/alacritty/alacritty/issues/109
我使用gnome终端,这解决了问题,但(0)不要忘记:
killall tmux
(1)编辑.tmux.conf
# 24 bit color
set -g default-terminal "tmux-256color"
set -ga terminal-overrides ",*256col*:Tc"
(2)编辑:.vimrc
" Enable true color
if exists('+termguicolors')
let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
set termguicolors
endif
rinetd发布的关于tmux回购问题的解决方案: https://github.com/tmux/tmux/issues/1246
假设你已经有了与终端相匹配的vim颜色:
运行tmux Kill -server终止所有tmux会话 在~/.tmux.conf中为tmux创建一个用户配置文件 在.tmux.conf文件中添加以下代码行: 设置-g default-terminal "tmux-256color" set -ga terminal-override ",xterm-termite:Tc" 在命令行中运行echo $TERM 用echo $TERM返回的输出替换xterm-termite
ENV:
Fedora 29工作站x86_64, GNOME终端3.30.1
VIM - Vi IMproven 8.1 (2018 年 5 月 18 日,编译于 Mar 8 2019 09:25:44)
GNU bash, version 4.4.23(1)-release (x86_64- rehat -linux- GNU)
tmux 2.7
Vim使用的是太阳能方案。
. vimrc
...
let g:solarized_termcolors=256
let g:solarized_termtrans=1
syntax enable
set background=dark
colorscheme solarized
...
bash中$TERM的值是:
[u@loc ~]$ echo $TERM
xterm-256color
[u@loc ~]$ tput colors
256
方法一:有效。
检查tmux会话中的$TERM值。得到
[u@loc ~]$ echo $TERM
screen
[u@loc ~]$ tput colors
8
因此,只需在tmux会话中设置export TERM=screen-256color。此方法仅在会话的当前窗格中有效。
方法二:有效。
创建~/.tmux.conf文件,并在文件中添加set -g default-terminal "tmux-256color"。
或者直接执行echo "set -g default-terminal \"tmux-256color\"" > ~/.tmux.conf "
然后关闭所有tmux会话。
启动一个新会话并检查tmux会话中的$TERM值。得到
[u@loc ~]$ echo $TERM
tmux-256color
[u@loc ~]$ tput colors
256
而且vim彩色方案适用于所有窗格和所有tmux会话。
我还尝试了~/.tmux.conf中的xterm-256color和screen-256color。它们都可以很好地为vim方案上色。
顺便说一下,我的~/中没有任何与此设置相关的配置。bash_profile、~ /。Bashrc和~/.vimrc。
参见https://github.com/tmux/tmux/wiki/FAQ#how-do-i-use-a-256-colour-terminal, https://github.com/tmux/tmux/wiki/FAQ#why-do-you-use-the-screen-terminal-description-inside-tmux
其他有用的演讲包括tmux# 699中的Vim配色方案更改、256-color-support-for-vim-background-in-tmux、get -256-colors-to-work- tmux、tmux-term-and-256- colors- support
我用软呢帽。
我将此添加到.tmux.conf文件中
设置-g default-terminal "xterm-256color"
然后将其添加到.vimrc
set background=dark
set t_Co=256