Как заставить vim listchar работать в среде, отличной от utf8?

Как заставить vim listchar работать в среде, отличной от utf8?

Мой .vimrc содержит:

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

Но есть некоторые символы, которые являются символами Unicode, когда я запускаю vim в среде LC_CTYPE=zh_TW.Big5, он покажет

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

решение1

Добавьте следующую строку в ваш vimrc, желательно в начало:

scriptencoding utf-8

Это заставит vim прочитать файл как UTF8, даже если вы используете не-UTF систему. Затем он перекодирует все символы из этой кодировки в вашу текущую кодировку. Если символы, которые вы используете в опции listchars, существуют в других кодировках, которые вы используете, вам даже не нужно иметь условное выражение вокруг этого.

Связанный контент