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:<

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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.