【发布时间】:2015-10-03 01:14:00
【问题描述】:
我正在使用 SUSE Linux Enterprise Desktop 11 (x86_64),我在终端中使用 Vim 作为我的编辑器。我最近从https://github.com/itchyny/lightline.vim 安装了一个名为 lightline 的插件。该插件使用特殊字符使状态行看起来像这样:
栏的 > 部分实际上是 ► 字符,其颜色类似于它旁边的正方形。问题是,在我的情况下,栏看起来像这样:
尽管编码设置为 UTF-8 并且系统上安装了所有必需的字体(用于电力线的字体),但 ► 字符未正确显示。在这种情况下,终端上设置的字体是 Liberation Mono for Powerline。
我的 vimrc 中的 Lightline 设置:
set encoding=utf-8
scriptencoding utf-8
let g:lightline = {
\ 'colorscheme': 'wombat',
\ 'separator': {'left': "\u25B6", 'right': ''},
\ 'subseparator': { 'left': '', 'right': ''}
\ }
我也尝试过像这样复制 ► 字符
let g:lightline = {
\ 'colorscheme': 'wombat',
\ 'separator': {'left': "►", 'right': ''},
\ 'subseparator': { 'left': '', 'right': ''}
\ }
但它以同样的方式表现出来。
此外,在应该有空格的地方有 ^ 字符的问题。
有什么解决办法吗?
【问题讨论】:
-
哇!不知道,谢谢!!
-
编码通常很棘手,因为您设置的所有部分(Vim、终端等)都必须就各自的设置达成一致。你的
set encoding=utf-8看起来很适合 Vim 部分,所以我怀疑终端设置有问题。如果您cat一个 UTF-8 文件会发生什么?file ~/.vimrc对该文件的编码有何看法? -
好吧,这有点奇怪:S 我把 ► 放到我的 lightline 配置而不是 \u25B6 中,并将终端编码更改为 Windows-1250。在我将终端编码改回 UTF-8 后,它起作用了!我试图 cat .vimrc 并且它现在正确显示了 ►。但是 ^ 字符仍然存在。
-
@AlexKroll 我找到了解决方案!该问题在此线程stackoverflow.com/questions/7223309/… 中进行了解释。是说如果 stl 和 stlnc 具有相同的值,它们将被替换为 ^^^。当我将 * 用于 stlnc 并将空格用于 stl 时,它现在可以工作了。
标签: linux vim encoding utf-8 powerline