美文网首页程序员
如何解决vim-airline显示奇怪的字符

如何解决vim-airline显示奇怪的字符

作者: 7okis | 来源:发表于2018-05-04 09:11 被阅读204次

    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,欢迎使用。

    相关文章

      网友评论

        本文标题:如何解决vim-airline显示奇怪的字符

        本文链接:https://www.haomeiwen.com/subject/nswrrftx.html