Open z-hunter opened 7 years ago
Вылечилось добавлением в vimrc:
let g:XkbSwitchSkipIMappings =
\ {'*' : ['.', '>', ':', ';', ',', '{<CR>', '/*', '/*<CR>'],}
Наверное надо в какой-то FAQ занести, можно issue закрывать.
Добрый день, не смог ответить вчера. Вы все правильно настроили, но проблема совсем не в библиотеке как таковой, а в том, что плагин переводит маппинги инсерт-мода, чтобы пользователь мог пользоваться ими, не переключая раскладку. Ваш C++ плагин настраивает Insert-mapping для символов .
и :
- проверьте это введя imap .
и :imap:
- это будет какой-нибудь omnicompletion
- после ввода этих символов vim предложит варианты - методы и нэймспейсы. Проблема в том, что символы соответствующей раскладки для русского языка (ю и ж) переводятся в вызовы этих же функций, и vim пытается вызвать omnicompetion, скорее всего безуспешно.
Выход - запретить трансляцию IMappings вообще или настроить ее специальным образом, как вы и сделали.
Документация такой проблемы уже есть в README и довольно хорошая - начинается со слов Be very careful with mapping duplicates!
и заканчивается в конце секции, там кстати приведен пример c настройкой g:XkbSwitchSkipIMappings
, который я использую сам и который очень похож на ваш.
Спасибо. Я как раз ту часть документации не очень внимательно читал, поскольку рассудил так "я не маплю никаких дубликатов, и вообще ничего не маплю, значит тут ничего интересно нет". Вообще как по мне, лучше бы трансляцию эту по умолчанию выключили, а в мануале написали как включить если кому-то нужно. Но это субъективно моё мнение, не претендующее на правоту.
Я добавил описание проблемы в секцию Troubleshooting со ссылкой на основную документацию.
Трансляция по умолчанию выключена: она включается командой let g:XkbSwitchIMappings = ['ru']
. Если вы ее удалите, то проблема исчезнет, однако лучше оставить эту настройку и добавлять плохие символы в g:XkbSwitchSkipIMappings
для конкретных filetype при выявлении проблем.
Проблема выявлена на типах файлов .md и .txt.
Сценарии: 1 Создал новый файл -- буквы на месте. Сохранил как a.txt -- буквы на месте. Выхожу из vim, снова захожу в vim, открываю a.txt -- теперь нельзя вводить буквы "ж", "б" и "ю" на любых регистрах, вместо них символы из английской раскладки.
Если удалить данный плагин, или dll которую он использует, то описанного не наблюдается.