Wie kann man vim listchar unter einer nicht utf8-Umgebung arbeiten lassen?

8

Meine .vimrc enthält:

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

Aber es gibt einige Zeichen, die Unicode sind. Wenn ich vim unter der Umgebung LC_CTYPE = zh_TW.Big5 ausführe, wird dies angezeigt

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

Antworten:

5

Fügen Sie Ihrem vimrc die folgende Zeile hinzu, vorzugsweise am Anfang:

scriptencoding utf-8

Dadurch wird vim angewiesen, die Datei auch dann als UTF8 zu lesen, wenn Sie sich auf einem Nicht-UTF-System befinden. Es werden dann alle Zeichen daraus in Ihre aktuelle Codierung transkodiert. Wenn die Zeichen, die Sie in der Option listchars verwenden, in den anderen von Ihnen verwendeten Codierungen vorhanden sind, sollten Sie nicht einmal die Bedingung dafür benötigen.

qqx
quelle
Diese Methode funktioniert auf vim, aber ich habe festgestellt, dass gvim diese Fehlermeldung immer noch anzeigt.
Daniel YC Lin
1
Haben Sie eine .gvimrcDatei, die auch Unicode-Zeichen enthält? Wenn ja, sollte das Problem auch dort behoben werden, wenn dieselbe Datei zu dieser Datei hinzugefügt wird. Dieser Befehl gilt nur für die Datei, in der er gefunden wird, und muss daher in jede vim-Konfigurationsdatei aufgenommen werden, in der die Zeichenkodierung wichtig ist.
qqx
Ich habe das durch mein gvimrc verursachte Problem gefunden und behoben.
Daniel YC Lin