vim-airline是一款不错的vim实用工具。还可以通过定制主题进行美化。
vim-airline demo, src: github readme看到一款不错的主题安装后,却出现了奇怪的情况。
error这效果完全不一样好吗!
查阅资料得知,这是字体的问题。
众所周知,Vim是一个以命令行为主的编辑器,我用的neovim更为如此。那么如何在命令行中画出UI需要的图形呢?这里采取的方式是,使用绘图字符(glyph,又称字形)。比如「■」的字符。如果这个字符在当前环境下未定义,或者定义成别的了,就会出现上面的错误。
Vim原来有一个基于python的项目叫powerline(现已停止开发),可算作vim-airline的精神前身吧。为了画出美观的UI,自己定义了一部分绘图字符,把它们放在了没有使用的Unicode编码中。
后来大家发现了绘图字符在命令行下绘制UI的简洁程度(最基本的只有7个),于是很多命令行应用也使用这些字符来绘制自己的UI了。而这些字符就被统称为powerline glyphs。
后来有人仿照这个,继续扩展命令行字符集,你可以在nerdfonts中找到40多种,3000多个字符。正如名字暗示的那样,里面包含了各种各样的nerd stuff,比如各种技术标志,甚至还有Spock手。如果emoji由nerds发明的话,大概就是这个效果吧。
spock由于这些字符不是标准编码,想要使用这些字符,需要字体在这些编码上正确定义。比如powerline/fonts给出了很多打好补丁的字体。
如果纯英文环境的话,常见的字体都包括了。但代码有中英混排需求,而中文字体又少有打好补丁的。这时可以选择上面nerdfonts提供的打补丁程序,给自己的字体打上补丁。
注意运行完成后得到的字体会被更名,以和原字体区分开。一般会以Nerd Font结尾。
如果不想更改各种软件的设置的话,可以通过编辑字体元信息使得名称和原字体一样。并用新字体将原字体覆盖。
最终得到的效果如下:
fixed我平常使用Consolas-with-Yahei字体,打好补丁的版本存放在crvdgc/Consolas-with-Yahei,欢迎使用。
网友评论