"set listchars = tab:> -, eol: $, space: ·" часть "space: ·" не работает? - PullRequest
0 голосов
/ 20 февраля 2019

Так странно, что раньше все было в порядке, но после того, как я добавил одну строку в vimrc с Windows Notepad, произошла ошибка!И это сводит меня с ума!

Вот часть ": set listchars" моего vimrc:

set listchars=tab:>-,eol:$,space:·

Обнаружена ошибка:

E474: invalid argument: listchars=tab:>-,eol:$,space:<a1><a4>

Screenshot vimrc

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Поскольку вы используете символы не ASCII, вам нужно использовать :help :scriptencoding, чтобы указать кодировку вашего ~/.vimrc.

Вы также переопределяете значение по умолчанию 'encoding', который влияет на представление любого текста внутри Vim, а также любого текста, не относящегося к ASCII, уже прочитанного. Следовательно, сначала вам нужно :set encoding, и только затем (с правильным набором внутреннего представления) вы можете указать кодировку сценария.:

set encoding=utf-8
scriptencoding utf-8
set listchars=...

В качестве альтернативы, вы также можете обойти проблемы с кодированием vimrc, кодируя символы не ASCII в строке (в двойных кавычках) (:help expr-quote) и используя:let &option вместо :set:

let &listchars = "tab:>-,eol:$,space:\u00B7"
0 голосов
/ 20 февраля 2019

Кажется, что Vim загружает файл vimrc с некоторой кодировкой, отличной от UTF-8.Я не знаю, какая кодировка используется.

Чтобы заставить Vim интерпретировать vimrc как UTF-8, необходима следующая строка:

scriptencoding utf-8

Все строки, следующие за этими строками,затем интерпретируется как UTF-8.Все строки перед этой строкой интерпретируются в соответствии с тем, что определяет Vim.

Если вы установите encoding в своем vimrc, строка scriptencoding должна быть после этой строки.

Так что в вашем случае вам нужно:

set encoding=utf-8
scriptencoding utf-8

Подробнее см. :help :scriptencoding.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...