- PVSM.RU - https://www.pvsm.ru -
Все команды Vim нужно вводить на английском языке. Если основной текст вводится на каком-либо другом языке, то это представляет из себя проблему, т.к. нужно часто переключать раскладку. Одно из решений представлено тут [1], однако оно заставляет привыкать к новой горячей клавише для переключения раскладки. Так же существует множество платформенно-зависимых решений с вызовом тех или иных утилит. Целью плагина vim-xkbswitch [2] является предоставить единое поведение для многих операционных систем и языков.
Предысторию разработки плагина с моей стороны можно посмотреть тут [3], со стороны Алексея тут [4] и тут [5].
Плагин использует платформенно-зависимые библиотеки для смены раскладки средствами операционной системы. На данный момент поддерживаются:
Так что кроме непосредственной установки плагина в Vim необходимо эти библиотеки скачать и указать в конфиге Vim, откуда эти библиотеки загружать. Например, под Windows работающий функционал можно получить так:
let g:XkbSwitchEnabled = 1
let g:XkbSwitchIMappings = ['ru']
Приближаемся к ещё одной интересной возможности плагина — добавление локализованных горячих клавиш. Например, если я в режиме редактирования нажму <C-N>v, то у меня отобразится NerdTree. Но если я редактирую текст на русском языке, то будет нажато "<C-N>м" и плагин, естественно, не запустится. Однако если опция плагина «g:XkbSwitchIMappings» установлена, то плагин переберёт все маппинги режима редактирования с создаст аналогичные локализованные, т.е. добавит для меня "<C-N>м".
По умолчанию из коробки поддерживаются маппинги только для русского языка. Однако плагин умеет загружать языковые карты из файла, что позволит создать локализованные imap'ы для любого языка. Под Windows это может помочь сделать charmapgen [11].
Если есть желание получить работающий плагин под другую ОС (например, под Mac OS), то нужно сделать Vim-совместимую библиотеку. У кого есть желание и возможность — пишите в личку.
Автор: DeXPeriX
Источник [12]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/vim/31398
Ссылки в тексте:
[1] тут: http://habrahabr.ru/post/98393/
[2] vim-xkbswitch: http://www.vim.org/scripts/script.php?script_id=4503
[3] тут: http://habrahabr.ru/post/162483/
[4] тут: http://lin-techdet.blogspot.com/2012/04/vim.html
[5] тут: http://lin-techdet.blogspot.com/2012/12/vim-xkb-switch-libcall.html
[6] xkb-switch: https://github.com/ierton/xkb-switch
[7] велосипед: https://github.com/DeXP/xkb-switch-win
[8] отсюда: https://github.com/lyokha/vim-xkbswitch
[9] 32-х бит: http://download.dexp.in/libxkbswitch32.dll
[10] 64-х бит: http://download.dexp.in/libxkbswitch64.dll
[11] charmapgen: https://github.com/DeXP/xkb-switch-win/tree/master/charmap
[12] Источник: http://habrahabr.ru/post/175709/
Нажмите здесь для печати.