关于 MS-VIM 颜色显示不正确的问题
很久没调整过家里的开发环境了。
最近尝试了一下 Hyper 和 Cmder,最根本的原因是 terminal vim 的 colorscheme 显示不正常,想找一个适配的终端。
经过排查发现有两个问题:
- Terminal Emulator 本身不支持 256 色/True color,Hyper, Cmd 有这样的问题。
- 所使用的 Vim 本身不支持 256 色,
echo &t_Co
表现为8/16
,如 MS-VIM(MS-GVIM 是支持的),而 msys2 build 的 MS-VIM 是支持的,在 cmder 下显示正常。
由此,首先排除掉 Hyper,Cmder 整体表现不错,但是在 win11 环境下不能作为系统默认终端(微软又在搞什么幺蛾子)
Windows Terminal,之前一直不能正常显示,然后发现实际上并不是,Wt 是支持 True color 的,是 MS-VIM 的一个 bug(注意不是 MS-GVIM)。
具体参见:https://github.com/vim/vim/issues/3432,省流就是,对于 MS-VIM,实际支持 256 色时,&t_Co 会被错误的设置为 16。
而且这个 issue 看似 close 了,实际上问题还是存在并且没修复,所以在主题当中添加了:
1 2 3 4 5 6 7 8 9 |
|
(see Enonya/yuyuko.vim commit 8ff073a)。
然后问题就得到了解决,所以在家中仍会继续沿用 Windows Terminal,但是还有一个问题,终端中,如果启动 Bash/Zsh,因为安装在 Git Bash 目录下,它有自带的 vim8.2,这样调用仍然没用,解决方案是,将 MS-VIM 所在的目录加入 Path 当中,并删除 Git Bash 目录下的 vim,然后 Bash 就会自己调用 MS-VIM 了,不过还需要给 vi 的 alias 做一下修改。
不过一般我都是直接在 vim 里开终端,而且也就只是 cat, cp, mv, rm
之类的基本命令,也没有必要因此再次折腾 Linux 了。
最后更新:
November 15, 2023