lyokha / vim-xkbswitch

vim plugin for automatic keyboard layout switching in insert mode
MIT License
481 stars 23 forks source link

g:XkbSwitchIMappingsTr not overriding existing default 'ru' map #18

Open vbauerster opened 9 years ago

vbauerster commented 9 years ago

Пользуюсь раскладкой Programmer Dvorak, и в следующей конфигурации попытался перезаписать маппинг по умолчанию для qwerty:

let g:XkbSwitchIMappingsTr = {
            \ 'ru':
            \ {'<': ';,.pyfgcrl`/@aoeuidhtns-''qjkxbmwvz'.
            \       ':<>PYFGCRL?^AOEUIDHTNS_"QJKXBMWVZ~75390|',
            \  '>': 'йцукенгшщзхъфывапролджэячсмитьбюё.'.
            \       'ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,Ё"№;:?/'},
            \ }
let g:XkbSwitchIMappings = ['ru']

При входе в режим вставки переключаюсь с дворака на русскую раскладку, затем нажимаю ^R (^O на qwerty) и любой регистр вставки, ничего не происходит. Однако если я тоже самое делаю как если бы у меня была qwerty, т.е. комбинация ^P на двораке (^R на qwerty соотвественно) то текст вставляется из регистров.

Что делаю не так?

lyokha commented 9 years ago

Плагин не переводит такие штуки. Я сказал штуки, потому что CTRL-R - это не маппинг режима Ввода, а встроенная фича vim. Чтобы просмотреть все маппинги, введите

:imap

в строке ввода vim: там вы не увидите никаких <C-R>, если только какой-нибудь внешний плагин не замапил это сочетание по-своему - в этом случае xkbswitch возьмет этот маппинг на рассмотрение, но... Он все равно не переведет его! Перевод маппингов был введен для упрощения работы в других раскладках (и только для этого!). Главная задача - оставить все символы для возможной работы маппинга на своих местах, как если бы в режиме ввода вдруг оказалась стандартная раскладка. Ввод <C-R>, по-крайней мере в терминалах Linux, остается неизменным при любых раскладках, поэтому нет никакого смысла его переводить (просто нажимайте это сочетание в режиме ввода как если бы вы находились в стандартной раскладке, и это должно работать). Возможно, в MacOS оно работает как-то по-другому, я не могу, к сожалению, проверить.

lyokha commented 9 years ago

Кстати, если вы пользуетесь вставкой <C-R>[a-z], то на данный момент реализации все что можно сделать - это вручную переключать раскладку для ввода символа из [a-z], но это действительно можно поправить опциональным вводом маппингов для <C-R>, сегодня или завтра попробую это реализовать

lyokha commented 9 years ago

Попробуйте, заработает ли новая версия.