我在我的archlinx中使用xterm模拟器,Xresource配置是这样的:
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 :(得分:0)
根本问题是g:airline_powerline_fonts = 1
使用单一字体(而不是字体集),如果字体中缺少特殊字符,则不会按预期显示。
然而,这不是这里提出的问题。相反,它是“如何使插件按预期工作”。
关于g:airline_powerline_fonts
的评论是一条线索,但不完整。在提到vim-airline FAQ时,我们发现了一个模糊的陈述:
在你的vimrc中添加let g:airline_powerline_fonts = 1将自动使用各种符号的正确字体字形填充g:airline_symbols字典。
我发现了一些关于这个主题的相关问题,但所有问题都是从常见问题解答中删除/粘贴的,所以我不会提及它们。
实际上,阅读源代码(init.vim
)可以提供更好的解释(FAQ条目无用)。源代码的作用是将插件初始化插件为各种特殊字符的Unicode或ASCII值,具体取决于.vimrc
变量。在OP的问题中,他显然在插件初始化后设置了值,这对于变量设置是有用的为时已晚。为了与插件正确集成,他的{{1}}应该执行与插件类似的操作,并考虑此变量。