2015-10-16 135 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應該執行與插件類似的操作,並將該變量考慮在內。