Конфигурация Vim выдает ошибки на одном компьютере, но не на другом

Что может привести к тому, что Vim выдаст ошибки на одном компьютере, но не на другом, учитывая, что обе системы имеют одинаковую конфигурацию vim?

У меня есть две машины Mac OS X Lion, на каждой из которых запущен бинарный файл vim по умолчанию, который поставляется с ОС.

Я храню каталоги .vimrc и .vim в репозитории git. Однако запуск vim на одной из этих машин выдает ошибку:

Error detected while processing function <SNR>41_CreateMaps..<SNR>41_DefineVariables..AutoClose#DefaultPairs..AutoClose#ParsePairs:
line   18:
AutoClose: Bad pair string - a pair longer then two character
line   19:
E121: Undefined variable: a:sring
E15: Invalid expression: " `- String: " . a:sring
line   20:
 `- Pair: «» Pair len: 4

Я упорядочиваю свои плагины с помощью плагина Vundle. Ошибка, по-видимому, вызвана плагином AutoClose.

В целях экономии я удалил каталог vim и все файлы .vim в своем домашнем каталоге, затем взял все из репозитория и переустановил плагины, но ошибка осталась.

Я должен добавить, что проблема не возникает при запуске MacVim, только vim в терминале.

Поскольку vim поставляется с предустановленной Mac OS X Lion, а другая моя машина (под управлением той же версии Mac OS) не генерирует эти ошибки при использовании тех же настроек, я не знаю, где искать.

Если это имеет значение, на обоих компьютерах установлен MacVim, но ошибка отображается только на одном из них и только при запуске vim из командной строки.


person Marco    schedule 06.12.2011    source источник
comment
Он изолирован от плагина AutoClose? Кроме того, возможно ли, что зависимость загружает один плагин перед другим в vim вместо MacVim?   -  person Dominic Tancredi    schedule 06.12.2011


Ответы (1)


Вероятно, это связано с тем, что файл находится в другой кодировке (latin1 и UTF-8), чем ожидает VIM.

Если вы поместите scriptencoding utf-8 вверху вашего .vimrc (при условии, что ваш vimrc на самом деле закодирован в UTF-8, используйте ISO-8859-1, если он закодирован в Latin1), все, начиная с этого момента, должно быть правильно распознано.

Чтобы просмотреть дополнительную документацию об этой функции, введите :help scriptencoding в vim.

(источник: http://vim.wikia.com/wiki/Converting_LANG_to_UTF-8 и мануал вим)

person Martijn    schedule 06.12.2011
comment
Я добавил scriptencoding utf-8, как вы предложили, но ошибка все равно возникает. - person Marco; 07.12.2011
comment
Я думаю, вам нужно поместить его в плагин, который вызывает ошибки. И скажите автору плагина :) - person Martijn; 07.12.2011
comment
Это сработало, ура! Мне любопытно, основываясь на ошибке, как вы определили, что проблема связана с кодировкой? - person Marco; 08.12.2011
comment
В нем говорится, что пара «» имеет длину 4. Это происходит только в многобайтовых кодировках. - person Martijn; 08.12.2011