我在 Solaris 10 机器上进行一些工作,并且我的 .vimrc 设置为显示制表符和行尾的 unicode 字符:
set listchars=tab:▸\ ,eol:¬
这在我的 OS X 机器上开箱即用。在 Linux 和 Solaris 上,当我启动 vim 时,我收到以下错误:
Error detected while processing /home/lhanson/.vimrc:
line 17:
E474: Invalid argument: listchars=tab:?~V?\ ,eol:¬
我在我的 Linux 机器上通过设置 LANG=en_US.utf8 ('locale -a' 显示这是一个选项) 解决了这个问题。
然而,在 Solaris 上,“locale -a”显示以下内容:
C
POSIX
iso_8859_1
将 LANG 设置为 C 或 POSIX 会产生相同的错误,尽管 iso_8859_1 可能不起作用,但它也无法成功更改区域设置。
作为非 root 用户,有什么方法可以让我显示的 unicode 字符?
答案1
我设法在不触碰机器上安装的语言环境的情况下解决了我的问题。
我的“set listchars...”行位于 .vimrc 中我设置 unicode 选项的另一部分之前。具体来说:
if has("multi_byte")
if &termencoding == ""
let &termencoding = &encoding
endif
set encoding=utf-8
setglobal fileencoding=utf-8 bomb
set fileencodings=ucs-bom,utf-8,latin1
endif
该示例(以及更多有用的信息)可以在这里看到:使用 Unicode。
通过删除设置 termencoding 的部分并将我的“set listchars”行移至“set encoding=utf-8”下方,我现在可以看到我的 unicode listchars。