Как позволить vim listchar работать в среде not utf8?


8

Мой .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:<

Ответы:


5

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

scriptencoding utf-8

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


Этот метод работает на vim, но я обнаружил, что gvim все еще показывает это сообщение об ошибке.
Даниэль YC Лин

1
У вас есть .gvimrcфайл, который также содержит символы Юникода? Если это так, добавление этой же строки в этот файл также должно решить проблему. Эта команда применяется только к файлу, в котором она найдена, поэтому ее необходимо включить в любой файл конфигурации vim, где важна кодировка символов.
qqx

Я нашел проблему, вызванную моим gvimrc, и исправил ее.
Даниэль YC Лин
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.