This repo is abandoned. If you want to support it or become an owner, please, contact me!
See this text in Russian below.
Keyboard Layout Switcher (KLS) is a plugin for Vim that makes international keyboard user’s life easer.
It switches keyboard layout to default when:
- Vim is starting
- You are leaving insert mode
- You are entering command mode
- You are pressing double <Esc> in normal or command modes.
And wait, wait…
- KLS strores current keyboard layout when Vim lost focus, and restores the layout when Vim got input focus back.
Optionally, it can store current layout for the insert mode. So, when you leave the insert mode and enter to the insert mode again KLS restores layout used in insert mode previously.
Imagine, you are editing source code in Vim. In some moment you are switching to another application to write a text not in English. When you‘ll switch back to Vim, KLS restores keyboard layout automaticly. It is incredibly handy.
And each tab has it‘s own keyboard layout.
Usually it is U.S., but KLS allow to use other layouts, for example, Typography layout by Ilya Birman.
Keyboard layout is switched directly by additional helper application written in Objective-C. When the helper startd without arguments it prints index of current layout (for example, U.S. layout usually has index 0). To switch current keyboard layout you should start the application with argument which corresponds to the layout. If there is no layout with index then application prints -1.
And Vim plugin just controls the helper. I tried to comment the source code detailed so everyone can understand it.
As I said, usually a default keyboard layout is English U.S., so, in fact you don’t need to edit preferences.
If you want to use another keyboard layout as default just add this line to your ~/.vimrc_:
@let g:klsdefaultInputSourceIndex = n " n is index of wanted keyboard layout@
If you want to use restoring of insert mode’s keyboard layout just add this line to your ~/.vimrc_:
@let g:klsinsertEnterRestoresLast = 1@
You can get index of wanted layout with the helper application: just switch to needed layout and execute the helper application. It will return a number and that number is the index of the layout.
KLS works only on Mac OS X 10.6 and higher. If you are still using 10.5 you should recompile source code of the helper application by yourself.
Keyboard Layout Switcher (KLS) — плагин для Vim, который освобождает пользователя от лишних телодвижений.
Переключает клавиатурную раскладку на раскладку по умолчанию:
- При запуске Vim
- При выходе из режима ввода
- Во время входа в командный режим
- При двойном нажатии <Esc> в нормальном и командном режимах.
И подождите, подождите…
- Запоминает раскладку, если фокус был потерян, и восстанавливает её при возврате фокуса.
Опционально он может сохранять раскладку режима ввода. Таким образом, при входе в режим ввода он восстанавливает раскладку, которая использовалась в режиме ввода до этого.
Представьте, что вы редактируете исходный код в Vim. В какой-то момент вы отвлекаетесь, например, чтобы написать в Твиттер. Когда вы вернётесь в Vim, KLS автоматически восстановит раскладку. Это невероятно удобно.
При этом каждый таб помнит свою раскладку.
Обычно это английская раскладка США (U.S.), однако, KLS позволяет использовать иные раскладки, например, типографскую раскладку Ильи Бирмана.
Непосредственно переключением раскладки занимается вспомогательное приложение, написанное на Objective-C. Запущенное без входных параметров оно печатает номер текущей раскладки (например, английская раскладка США обычно имеет номер 0). Чтобы переключиться на определённую раскладку, необходимо запустить приложение, передав ей в качестве параметра нужный номер. Если раскладки с переданным номером нет, то приложение напечатает -1.
Логикой занимается Vim-плагин. Он обеспечивает весь функционал, используя вспомогательное приложение. Я постарался максимально подробно комментировать исходный код плагина, чтобы любой мог разобраться.
Как уже говорилось выше, из коробки в качестве раскладки по умолчанию используется английская раскладка США, потому дополнительная настройка фактически не требуется.
Если вы всё же хотите использовать другую раскладку, то просто добавьте в ваш ~/.vimrc строку:
let g:kls_defaultInputSourceIndex = n " Где n — номер нужной вам раскладки.
Если вы хотите использовать сохранение раскадки ввода, то просто добавьте в ваш ~/.vimrc строку:
let g:kls_insertEnterRestoresLast = 1
Чтобы узнать номер нужной раскладки, на неё надо переключиться, а затем запустить вспомогатальное приложение. Оно и вернёт нужный номер.
KLS работает только в Mac OS X 10.6 и выше. Если вы всё ещё используете 10.5, то вы можете перекомпилировать исходный код вспомогательного приложения самостоятельно.