Skip to content

porqz/KeyboardLayoutSwitcher.vim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 

Repository files navigation

This repo is abandoned. If you want to support it or become an owner, please, contact me!

Keyboard Layout Switcher

See this text in Russian below.

What is it

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

What does it do

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.

Default keyboard layout

Usually it is U.S., but KLS allow to use other layouts, for example, Typography layout by Ilya Birman.

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.

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.

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 by yourself.

Keyboard Layout Switcher

Что это такое

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, то вы можете перекомпилировать исходный код вспомогательного приложения самостоятельно.

About

(OS X / macOS only!) Plugin for Vim that provides smart keyboard layout switching

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published