Come consentire a vim listchar di funzionare in un ambiente non utf8?


8

Il mio .vimrc contiene:

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

Ma ci sono alcuni caratteri che è Unicode, quando eseguo vim in ambiente LC_CTYPE = zh_TW.Big5, mostrerà

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

Risposte:


5

Aggiungi la seguente riga al tuo vimrc, preferibilmente vicino all'inizio:

scriptencoding utf-8

Ciò dirà a Vim di leggere il file come UTF8 anche se si utilizza un sistema non UTF. Quindi transcodificherà tutti i caratteri da quello nella codifica corrente. Se i caratteri che stai utilizzando nell'opzione listchars esistono le altre codifiche che usi non dovresti nemmeno avere il condizionale attorno a quello.


Questo metodo funziona su vim, ma, ho trovato gvim mostra ancora quel messaggio di errore.
Daniel YC Lin,

1
Hai un .gvimrcfile che contiene anche caratteri Unicode? In tal caso, l'aggiunta della stessa riga a quel file dovrebbe risolvere anche il problema. Questo comando si applica solo al file in cui è stato trovato, quindi dovrebbe essere incluso in qualsiasi file di configurazione di vim in cui la codifica dei caratteri è importante.
qqx

Ho trovato il problema causato dal mio gvimrc e risolto.
Daniel YC Lin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.