用Vim'给臭虫着色;s-mbg;用VimLeave解决问题?
我最近发现了Vim colorschemes,在此过程中发现了一个相当奇怪的错误:当我在Vim中运行用Vim'给臭虫着色;s-mbg;用VimLeave解决问题?,vim,putty,vim-syntax-highlighting,Vim,Putty,Vim Syntax Highlighting,我最近发现了Vim colorschemes,在此过程中发现了一个相当奇怪的错误:当我在Vim中运行hi-Normal-ctermbg时,颜色变化会传递到我运行Vim的shell中,如下所示: 我使用的PuttyRay(但也可以看到PuTTY中的行为)启用了256色,粗体文本由字体更改指示,并且$TERM设置为“PuTTY-256color”;我的.vimrc如下: set t_Co=256 colors zenburn 可以找到zenburn.vim。我专门针对第298行隔离了这个问题,在
hi-Normal-ctermbg
时,颜色变化会传递到我运行Vim的shell中,如下所示:
我使用的PuttyRay(但也可以看到PuTTY中的行为)启用了256色,粗体文本由字体更改指示,并且$TERM设置为“PuTTY-256color”;我的.vimrc如下:
set t_Co=256
colors zenburn
可以找到zenburn.vim。我专门针对第298行隔离了这个问题,在第298行中,它首先配置了正常高亮显示的ctermbg
(旁白:当使用具有特定颜色设置的油灰盒时,在正常高亮显示中,ctermbg
必须首先与guifg
或guibg
同时设置,例如hi Normal guifg=#dcdcdccc ctermbg=237
,并且只有在这之后才能hi Normal ctermbg=some\val
工作。)
有人知道为什么会这样吗
我还尝试通过在
vimleeve
上运行hi-Normal ctermbg=None
来解决问题(尽管我认识到,如果我运行多个Vim实例,这是有问题的,因此如果有人可以建议一个也受欢迎的替代方案),但没有成功。将以下内容添加到my.vimrc
中不起作用:
function! RESET_ctermbg()
"reset $ctermbg to None"
exec "hi Normal ctermbg=None"
endfunction
au VimLeave * call RESET_ctermbg()
我已通过将
$TERM
更改为xterm-256color
解决了此问题;我的最佳选择是,putty-256color
作为一个shell没有得到足够的支持,无法处理像我所做的vim colorscheme那样的行为,因此,我甚至不需要再尝试使解决方案工作。将$TERM
设置为putty-256color
termcap信息安装在运行vim的Linux系统中,并且该信息与正在使用的putty版本和配置标志相匹配。