如何让vim listchar在非utf8环境下工作?

如何让vim listchar在非utf8环境下工作?

我的 .vimrc 包含:

if $LANG =~ '\(UTF\|utf\)-\?8' || $LC_CTYPE =~ '\(UTF\|utf\)-\?8'
  set list listchars=tab:»·,trail:~,extends:>,precedes:<
endif

但是有些字符是unicode的,当我在LC_CTYPE=zh_TW.Big5环境下运行vim时,它会显示

Error detected while processing /home/user/.vimrc:
  line   70:
E474: Invalid argument: listchars=tab:»·,trail:~,extends:>,precedes:<

答案1

将以下行添加到你的 vimrc 中,最好在开头附近:

scriptencoding utf-8

这将告诉 vim 以 UTF8 格式读取文件,即使您使用的是非 UTF 系统。然后,它会将任何字符从 UTF8 转码为当前编码。如果您在 listchars 选项中使用的字符与您使用的其他编码相同,则您甚至不需要为此设置条件。

相关内容