在 Solaris 上以非 root 用户身份使用 vim/locale 时出现的问题

在 Solaris 上以非 root 用户身份使用 vim/locale 时出现的问题

我在 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。

相关内容