Vim8 + Windows Terminal 换妆指北

前言

一切还要从 MS 在 2019 年发布了 Windows Terminal 这种东西,一举解决了伟大的 Windows 居然没有一个像样的官方终端之问题说起。当然,这个 MS 不是别人,正是微软。

当然,这个被吹上天的 Windows Terminal 最好是再配个 Powershell Core 一起食用,非常爽。

但是震惊G子一整年的是这个东西的配置文件居然是纯文本的 JSON。

好吧,也算不上震惊。最后G子跟着这篇教程配置了一气 Powerline,还顺手开了亚克力效果。反正最后,它就长上边儿那样。

哦,忘了提一句,包括上段的教程链接和后边的引用,内容都是英文的。不过 MS 的英语 《也就那水平》,读起来压力不大。

P.S. 这篇教程其实挺邪道的。毕竟是两个世界的玄学组合,G子也不知道它能不能长久有效。

其一 | 在 Windows Terminal 里面玩个 Vim 配色

Windows Terminal 这玩意太长了,用 WT 缩写代替算了。

首先去 Vim 官网搞个 Vim。G子嫌附赠的 gVim 太丑了,干脆就弃了。而且 gVim 这玩意本来就不在命令行上,一点不顺手。

用 Powershell 调 Vim 挺简单的。其实加个环境变量也……行

但还可以这么玩:

notepad $PROFILE

然后里边儿添一行:

set-alias vim "D:\Program Files\Vim\vim82\vim.exe"

当然G子是把 Vim 丢这个地方了,这个路径就看着改一下。

哦,顺便提一句,这个 $PROFILE 文件的位置其实就在 $USRDIR\Documents\PowerShell 里边儿,其实也可以开着 Explorer 一路翻过去。

然后试试,应该就能调起 Vim 来。

G子给 WT 配了 Powerline(就上面说过的那个),所以有 Cascadia Code 这字体。它至少是等宽的,还专门为代码设计,还有连字符(对,WT 甚至支持连字符),就很爽。

虽然G子平常是习惯用 Fira Code 的,但是那玩意和 Powershell 的 Paradox 主题(也是 Powerline 教程里的)兼容不好,最后还是算了。

然后你可以试试给 Vim 换配色方案,比如上个G子最爱的 Dracula。点左边这个链接就有步骤说明。

哦,顺便一提,Windows 下那个文件夹不叫 .vim,叫 vimfiles,不过也在 $USRDIR 下面。G子觉得你该知道 $USRDIR 是啥,不知道的话去搜下也不麻烦。

接着说,装完了之后开一下 gVim,就会发现起效了。但是 WT 里的 Vim 显示还是照旧。但这为啥呢。G子搞了一个小时还是没搞明白,最后去问 C10s。

C10s 说可能是 Powershell / WT 没有良好的声明自己的 terminfo,结果 Vim 认为它俩不支持 24-bit 真彩色显示。和这个问题很类似。

那没关系,去看看 Vim 怎么强制 24bit 彩色就行了。其实就是 _vimrc 里边加上一行:

set t_Co=256

然后你就会发现 Vim 显示的非常诡异,就像这样:

那咋办。查了下资料发现也有人遇上这个问题

解决方法就还是在 _vimrc 里边加一句:

set t_ut=""

就可以了。这条的意思大概是强制 Vim 重绘终端的所有区域。

C10s 最后评价说也是 terminfo 的锅。MS,不愧是你。

无论如何,最后G子就有了一个 Vim Dracula 主题 + WT 亚克力透明效果都正常显示的漂亮玩意了。挺好。

其二 | Windows Terminal 的一些缺陷和化妆

G子假设你也配好了上边儿教程的 Powerline,或者至少开了个亚克力吧。毕竟这玩意挺好看,毛玻璃透明效果,有种朦胧美。

说是缺陷,其实大概是这样一回事。G子注意到他开了 WT 的亚克力效果之后,敲命令的时候遇到类似 -h --help 之类的选项,那些选项的代码会被高亮成一种 “也不灰也不白,总之十分晃眼还和亚克力背景全部糅杂在一起根本看不清” 的颜色。大概就这样。

后来G子去翻 MS 的文档。发现 WT 是有 colorScheme 也就是颜色主题这一说的。当然,它的颜色主题和 Powershell Core 的是分开的,别给弄混了。

所以G子突发奇想打算魔改一下配色,这样就能把那个诡异的高亮颜色修正过来,不然每次G子试图认出自己打了什么命令参数,都和瞎了眼一样。

原理大概是这样:魔改一套 WT 自带的配色(它自带了好几套),然后小修一下配色。

这个地方是有告诉你怎么搞到 WT 内置配色的。去扒一份然后小改一下就行。

G子大概改成了这样:

哦,顺便G子还注意到一个事实,就是那个阅读障碍一般的配色,其名字居然还是 brightBlack……好家伙,MS,没人比你更会起名。G子也想知道你有什么本事,把这个灰不灰白不白的配色叫成是亮黑。

记得在 Powershell Core 7 (或者别的啥)的配置里加上 colorScheme。具体也可以去看上边那个 MS 的说明书。

 

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据