Jak pozwolić vim listchar działać w środowisku innym niż utf8?

8

Mój .vimrc zawiera:

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

Ale jest kilka znaków, które są Unicode, kiedy uruchomię vima w środowisku LC_CTYPE = zh_TW.Big5, pokaże

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

Odpowiedzi:

5

Dodaj następujący wiersz do vimrc, najlepiej na początku:

scriptencoding utf-8

To powie vimowi odczytanie pliku jako UTF8, nawet jeśli jesteś w systemie innym niż UTF. Następnie transkoduje wszelkie znaki z tego na twoje obecne kodowanie. Jeśli znaki, których używasz w opcji listchars, istnieją inne kodowania, których używasz, nie powinieneś nawet mieć warunku.

qqx
źródło
Ta metoda działa na vimie, ale znalazłem, że gvim nadal wyświetla ten komunikat o błędzie.
Daniel YC Lin
1
Czy masz .gvimrcplik zawierający również znaki Unicode? Jeśli tak, dodanie tego samego wiersza do tego pliku również powinno rozwiązać problem. Ta komenda dotyczy tylko pliku, w którym została znaleziona, więc musiałaby zostać dołączona do każdego pliku konfiguracyjnego vim, w którym ważne jest kodowanie znaków.
qqx
Znalazłem problem spowodowany przez mój gvimrc i naprawiłem go.
Daniel YC Lin