¿Cómo dejar que vim listchar funcione en un entorno no utf8?

8

Mi .vimrc contiene:

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

Pero hay algunos caracteres que son unicode, cuando ejecuto vim en el entorno LC_CTYPE = zh_TW.Big5, mostrará

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

Respuestas:

5

Agregue la siguiente línea a su vimrc, preferiblemente cerca del comienzo:

scriptencoding utf-8

Eso le dirá a vim que lea el archivo como UTF8 incluso si está en un sistema que no es UTF. Luego transcodificará cualquier carácter de ese a su codificación actual. Si los caracteres que está usando en la opción listchars existen, las otras codificaciones que use no deberían necesitar tener el condicional alrededor de eso.

qqx
fuente
Este método funciona en vim, pero descubrí que gvim todavía muestra ese mensaje de error.
Daniel YC Lin
1
¿Tiene un .gvimrcarchivo que también contiene caracteres unicode? Si es así, agregar la misma línea a ese archivo también debería solucionar el problema allí. Ese comando solo se aplica al archivo en el que se encuentra, por lo que debería incluirse en cualquier archivo de configuración de vim donde la codificación de caracteres es importante.
qqx
Encontré el problema causado por mi gvimrc y lo solucioné.
Daniel YC Lin