Як дозволити vim listchar працювати в умовах 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файл, який також містить символи unicode? Якщо так, додавання того самого рядка до цього файлу також має вирішити проблему. Ця команда застосовується лише до файлу, в якому вона знайдена, тому її потрібно буде включити до будь-якого файлу конфігурації vim, де важливе кодування символів.
qqx

Я знайшов проблему, викликану моїм gvimrc, і виправив її.
Daniel YC Lin
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.