2015-10-16 139 views
0

我用的xterm模拟器在我archlinx的Xresource配置是这样的:的Xterm配置

XTerm*locale: true 
Xterm*faceName: Monaco:antialias=true 
XTerm*faceNameDoublesize: WenQuanYi micro hei:antialias=true 
XTerm*background: black 
XTerm*foreground: gray 

我是中国人,所以我设置XTerm*faceNameDoublesize中国的字体,但是当我用vim-airline plugin,符号在状态行不能显示这样的:

和这样的:

let g:airline_left_sep = '▶' 
let g:airline_symbols.branch = '⎇' 

(以上这个符号不能在xterm中显示)

我使用的另一个终端仿真程序来做到这一点,这是确定的,所以我觉得我的xterm是错的,但我无法找到它为什么。

+0

这似乎是字体问题。尝试[this](https://powerline.readthedocs.org/en/master/installation.html#patched-fonts),然后在您的.vimrc中放入'let g:airline_powerline_fonts = 1'。我希望这会有所帮助。 – ryuichiro

+0

'uxterm'默认不支持正确的字符? – Jason

回答

0

底层问题是xterm使用单个字体(而不是字体集),并且如果字体中缺少特殊字符,则这些字符将不会按预期方式显示。

但是,这不是这里提出的问题。相反,它是“我如何使插件按预期工作”。

关于g:airline_powerline_fonts = 1的评论,是一条线索,但不完整。谈到vim-airline FAQ,我们发现了一个模糊的说法:

加设G:airline_powerline_fonts = 1到你的vimrc将自动填充G:airline_symbols与正确的字体字形的各种符号字典。

我在这个主题上发现了一些相关的问题,但都是从常见问题解答/粘贴,所以我不会提及它们。

实际上,阅读源代码(init.vim)给出了一个更好的解释(FAQ条目是没有用的)。源代码的作用是初始化针对各种特殊字符的Unicode或ASCII值的插件,具体取决于g:airline_powerline_fonts变量。在OP的问题中,他明显在插件初始化后设置了值,这对于变量设置是有用的已经太晚了。为了与插件正确集成,他的.vimrc应该执行与插件类似的操作,并将该变量考虑在内。