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

Dan*_*Lin 8 vim

我的 .vimrc 包含:

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

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

Error detected while processing /home/user/.vimrc:
  line   70:
E474: Invalid argument: listchars=tab:»·,trail:~,extends:>,precedes:<
Run Code Online (Sandbox Code Playgroud)

qqx*_*qqx 5

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

scriptencoding utf-8
Run Code Online (Sandbox Code Playgroud)

即使您在非 UTF 系统上,这也会告诉 vim 将文件读取为 UTF8。然后它会将其中的任何字符转码为您当前的编码。如果您在 listchars 选项中使用的字符存在您使用的其他编码,则您甚至不需要围绕它设置条件。