使用 Vim 的 ctermbg 着色错误; Vim离开的解决方法?
Coloring bug with Vim's ctermbg; workaround with VimLeave?
我最近发现了 Vim colorschemes,并且在这个过程中发现了一个相当奇怪的错误:当我在 运行 hi Normal ctermbg
中 Vim 时,颜色变化会继续到我 运行ning Vim 所在的 shell,像这样:
我正在使用启用了 256 种颜色的 PuTTYtray(但也可以查看 PuTTY 中的行为)、字体更改指示的粗体文本以及 $TERM 设置为 "putty-256color";我的 .vimrc 如下:
set t_Co=256
colors zenburn
和zenburn.vim可以找到here。我已经将问题专门隔离到第 298 行,它首先配置 ctermbg
以进行正常突出显示。
(顺便说一句:似乎在使用具有特定颜色设置的 PuTTY 托盘时,在正常突出显示中,ctermbg
必须首先与 guifg
或 guibg
同时设置,例如 hi Normal guifg=#dcdccc ctermbg=237
,只有在那之后 hi Normal ctermbg=some_val
才能工作。)
有没有人碰巧知道为什么会这样?
我还尝试通过 运行ning hi Normal ctermbg=None
在 VimLeave
上进行解决(尽管我认识到如果我 运行 多个 Vim 实例,所以如果有人可以提出替代方案,那也将受到欢迎),但没有成功。将以下内容添加到我的 .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 这样的行为,所以我什至不需要尝试制作解决方法不再有效。
我最近发现了 Vim colorschemes,并且在这个过程中发现了一个相当奇怪的错误:当我在 运行 hi Normal ctermbg
中 Vim 时,颜色变化会继续到我 运行ning Vim 所在的 shell,像这样:
我正在使用启用了 256 种颜色的 PuTTYtray(但也可以查看 PuTTY 中的行为)、字体更改指示的粗体文本以及 $TERM 设置为 "putty-256color";我的 .vimrc 如下:
set t_Co=256
colors zenburn
和zenburn.vim可以找到here。我已经将问题专门隔离到第 298 行,它首先配置 ctermbg
以进行正常突出显示。
(顺便说一句:似乎在使用具有特定颜色设置的 PuTTY 托盘时,在正常突出显示中,ctermbg
必须首先与 guifg
或 guibg
同时设置,例如 hi Normal guifg=#dcdccc ctermbg=237
,只有在那之后 hi Normal ctermbg=some_val
才能工作。)
有没有人碰巧知道为什么会这样?
我还尝试通过 运行ning hi Normal ctermbg=None
在 VimLeave
上进行解决(尽管我认识到如果我 运行 多个 Vim 实例,所以如果有人可以提出替代方案,那也将受到欢迎),但没有成功。将以下内容添加到我的 .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 这样的行为,所以我什至不需要尝试制作解决方法不再有效。