2013-03-10 2 views
1

Мои аббревиатуры Vim не работают, когда я использую испанские акценты или персонажи. У меня в .vimrc следующее:Аббревиатуры Vim с акцентированными символами не полностью заменяют текст

iab maniana mañana 
iab habia había 

Но когда я ударил Space после ввода, например, «Habia,» я получаю только «Хаби.»

Мои iskeywords установлены как:

set [email protected],48-57,_,192-255,:,# 

Edit: этой команде :verbose iab habiai habia hab<ed>a возвращается и команда :verbose iab maniana возвращает i maniana ma<f1>ana.

+0

Что выводится ': set encoding?' – Birei

+0

Выходы: utf-8 – petobens

+0

в вашем терминале, выполните 'vim -version | grep -Eo" .multi_ \ w + "' какой результат? – Kent

ответ

3

Я думаю, что это простая проблема с кодированием. (Раствор в нижней части.)

Кажется, что когда :iab maniana mañana выполняется, ñ интерпретируется в Latin 1 кодировке, где один байт по размеру и имеет значение 0x00f1:

ñ (Latin 1): 11110001 

Когда вы используйте аббревиатуру, однако вы как-то переключились на кодировку UTF-8.

Vim просто вставляет байты, которые вы сохранили в правой части: 11110001. Но в UTF-8 ñ имеет другое представление - фактически, 11110001 является недопустимым байт UTF-8 (показан как <f1>), и поэтому расширение останавливается. Просто, чтобы проиллюстрировать этот момент, они являются UTF-8 байт для ñ:

ñ (UTF-8):  11000011 10110001 
         ^^ ^^^^^^ 

Кстати, ñ имеет Unicode элемент кода0x00f1, и вы можете видеть, что это закодировано в двух байтах, показанных выше.

Хорошо, спросите вы, но что это значит ?!

Это значит, что вы должны проверить vimrc и быть уверенным, что :set encoding=utf-8 подходит к аббревиатуре.

+1

. Прочитав ваш ответ, я просмотрел файл 'vimrc' и нашел строку' scriptencoding utf-8' непосредственно перед 'set encoding = utf8'. Я не знаю, почему у меня это было (вероятно, в первый раз, когда я установил Vim по какой-то причине, файл 'vimrc' не отображал акцентированные символы, и я должен был добавить эту строку). Комментируя это, похоже, решает проблему. – petobens

Смежные вопросы