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

8

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 eu executo o vim no ambiente LC_CTYPE = zh_TW.Big5, ele mostra

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

Respostas:

5

Adicione a seguinte linha ao seu vimrc, de preferência perto do início:

scriptencoding utf-8

Isso instruirá o vim a ler o arquivo como UTF8, mesmo se você estiver em um sistema não UTF. Ele irá transcodificar qualquer caractere daquele para 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 precisará ter a condição disso.

qqx
fonte
Este método funciona no vim, mas descobri que o gvim ainda mostra essa mensagem de erro.
Daniel YC Lin
11
Você tem um .gvimrcarquivo que também contém caracteres unicode? Nesse caso, adicionar a mesma linha a esse arquivo também deve resolver o problema. Esse comando se aplica apenas ao arquivo em que ele é encontrado, portanto, precisa ser incluído em qualquer arquivo de configuração do vim em que a codificação de caracteres seja importante.
Qqx
Encontrei o problema causado pelo meu gvimrc e o corrigi.
precisa