Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

В некоторых типах файлов слетают русские буквы Ж,Б,Ю #33

Open
z-hunter opened this issue Mar 25, 2017 · 4 comments

Comments

@z-hunter
Copy link

Проблема выявлена на типах файлов .md и .txt.

Сценарии: 1 Создал новый файл -- буквы на месте. Сохранил как a.txt -- буквы на месте. Выхожу из vim, снова захожу в vim, открываю a.txt -- теперь нельзя вводить буквы "ж", "б" и "ю" на любых регистрах, вместо них символы из английской раскладки.
2. Создал новый файл, Сохранил как a.cpp. Вышел-зашёл в vim, открыл этот файл -- все буквы вводятся нормально.

Если удалить данный плагин, или dll которую он использует, то описанного не наблюдается.

@z-hunter
Copy link
Author

z-hunter commented Mar 25, 2017

Вылечилось добавлением в vimrc:

let g:XkbSwitchSkipIMappings =
        \ {'*'   : ['.', '>', ':', ';', ',', '{<CR>', '/*', '/*<CR>'],}

Наверное надо в какой-то FAQ занести, можно issue закрывать.

@lyokha
Copy link
Owner

lyokha commented Mar 26, 2017

Добрый день, не смог ответить вчера. Вы все правильно настроили, но проблема совсем не в библиотеке как таковой, а в том, что плагин переводит маппинги инсерт-мода, чтобы пользователь мог пользоваться ими, не переключая раскладку. Ваш C++ плагин настраивает Insert-mapping для символов . и : - проверьте это введя imap . и :imap: - это будет какой-нибудь omnicompletion - после ввода этих символов vim предложит варианты - методы и нэймспейсы. Проблема в том, что символы соответствующей раскладки для русского языка (ю и ж) переводятся в вызовы этих же функций, и vim пытается вызвать omnicompetion, скорее всего безуспешно.

Выход - запретить трансляцию IMappings вообще или настроить ее специальным образом, как вы и сделали.

Документация такой проблемы уже есть в README и довольно хорошая - начинается со слов Be very careful with mapping duplicates! и заканчивается в конце секции, там кстати приведен пример c настройкой g:XkbSwitchSkipIMappings, который я использую сам и который очень похож на ваш.

@z-hunter
Copy link
Author

Спасибо. Я как раз ту часть документации не очень внимательно читал, поскольку рассудил так "я не маплю никаких дубликатов, и вообще ничего не маплю, значит тут ничего интересно нет". Вообще как по мне, лучше бы трансляцию эту по умолчанию выключили, а в мануале написали как включить если кому-то нужно. Но это субъективно моё мнение, не претендующее на правоту.

@lyokha
Copy link
Owner

lyokha commented Mar 27, 2017

Я добавил описание проблемы в секцию Troubleshooting со ссылкой на основную документацию.

Трансляция по умолчанию выключена: она включается командой let g:XkbSwitchIMappings = ['ru']. Если вы ее удалите, то проблема исчезнет, однако лучше оставить эту настройку и добавлять плохие символы в g:XkbSwitchSkipIMappings для конкретных filetype при выявлении проблем.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants