Como deixar o vim listchar funcionar em ambiente não utf8?

Como deixar o vim listchar funcionar em ambiente não utf8?

Meu .vimrc contém:

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

Mas há alguns caracteres que são unicode, quando executo o vim no ambiente LC_CTYPE=zh_TW.Big5, ele será exibido

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

Responder1

Adicione a seguinte linha ao seu vimrc, de preferência próximo ao início:

scriptencoding utf-8

Isso dirá ao vim para ler o arquivo como UTF8, mesmo se você estiver em um sistema não UTF. Em seguida, ele transcodificará todos os caracteres em sua codificação atual. Se os caracteres que você está usando na opção listchars existirem, as outras codificações que você usa, você nem precisa ter a condicional em torno disso.

informação relacionada