porqz / KeyboardLayoutSwitcher.vim

(OS X / macOS only!) Plugin for Vim that provides smart keyboard layout switching
19 stars 6 forks source link

h1. This repo is abandoned. If you want to support it or become an owner, please, ["contact me":mailto:p+old.KLS@mesquite.ru]!

h1. Keyboard Layout Switcher

See this text in Russian below.

h2. What is it

Keyboard Layout Switcher (KLS) is a plugin for Vim that makes international keyboard user’s life easer.

h3. What does it do

It switches keyboard layout to default when:

And wait, wait...

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.

h3. Default keyboard layout

Usually it is U.S., but KLS allow to use other layouts, for example, "Typography layout by Ilya Birman":http://ilyabirman.ru/typography-layout/.

h2. How does it work

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.

h2. Preferences

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:kls_defaultInputSourceIndex = 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:kls_insertEnterRestoresLast = 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.

h2. Compatibility

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":http://gist.github.com/462485 by yourself.

h1. Keyboard Layout Switcher

h2. Что это такое

Keyboard Layout Switcher (KLS) — плагин для Vim, который освобождает пользователя от лишних телодвижений.

h3. Что он делает

Переключает клавиатурную раскладку на раскладку по умолчанию:

И подождите, подождите...

Опционально он может сохранять раскладку режима ввода. Таким образом, при входе в режим ввода он восстанавливает раскладку, которая использовалась в режиме ввода до этого.

Представьте, что вы редактируете исходный код в Vim. В какой-то момент вы отвлекаетесь, например, чтобы написать в "Твиттер":http://twitter.com/. Когда вы вернётесь в Vim, KLS автоматически восстановит раскладку. Это невероятно удобно.

При этом каждый таб помнит свою раскладку.

h3. Раскладка по умолчанию

Обычно это английская раскладка США (U.S.), однако, KLS позволяет использовать иные раскладки, например, "типографскую раскладку Ильи Бирмана":http://ilyabirman.ru/typography-layout/.

h2. Как это работает

Непосредственно переключением раскладки занимается вспомогательное приложение, написанное на Objective-C. Запущенное без входных параметров оно печатает номер текущей раскладки (например, английская раскладка США обычно имеет номер 0). Чтобы переключиться на определённую раскладку, необходимо запустить приложение, передав ей в качестве параметра нужный номер. Если раскладки с переданным номером нет, то приложение напечатает -1.

Логикой занимается Vim-плагин. Он обеспечивает весь функционал, используя вспомогательное приложение. Я постарался максимально подробно комментировать исходный код плагина, чтобы любой мог разобраться.

h2. Настройка

Как уже говорилось выше, из коробки в качестве раскладки по умолчанию используется английская раскладка США, потому дополнительная настройка фактически не требуется.

Если вы всё же хотите использовать другую раскладку, то просто добавьте в ваш ~/.vimrc строку: @let g:kls_defaultInputSourceIndex = n " Где n — номер нужной вам раскладки.@

Если вы хотите использовать сохранение раскадки ввода, то просто добавьте в ваш ~/.vimrc строку: @let g:kls_insertEnterRestoresLast = 1@

Чтобы узнать номер нужной раскладки, на неё надо переключиться, а затем запустить вспомогатальное приложение. Оно и вернёт нужный номер.

h2. Совместимость

KLS работает только в Mac OS X 10.6 и выше. Если вы всё ещё используете 10.5, то вы можете перекомпилировать "исходный код вспомогательного приложения":http://gist.github.com/462485 самостоятельно.