Ⅰ. 插件描述
(OS X / macOS only!) Plugin for Vim that provides smart keyboard layout switchingⅡ. 基本信息
|
Ⅲ. 安装方法
使用Vundle管理器安装
在你的.vimrc下添加:Plugin 'porqz/keyboardlayoutswitcher'
… 然后在Vim中运行以下命令:
:source %
:PluginInstall
对于Vundle版本 < 0.10.2,请用上面的Bundle替换Plugin。
使用NeoBundle管理器安装
在你的.vimrc下添加:NeoBundle 'porqz/keyboardlayoutswitcher'
… 然后在Vim中运行以下命令:
:source %
:NeoBundleInstall
使用VimPlug管理器安装
在你的.vimrc下添加:Plug 'porqz/keyboardlayoutswitcher'
… 然后在Vim中运行以下命令:
:source %
:PlugInstall
使用Pathogen管理器安装
在终端中运行以下命令:cd ~/.vim/bundle
git clone https://github.com/porqz/keyboardlayoutswitcher
Ⅳ. 文档说明
- This repo is abandoned. If you want to support it or become an owner, please, ["contact me":mailto:p@mesquite.ru]!
- Keyboard Layout Switcher
See this text in Russian below.
- What is it
Keyboard Layout Switcher (KLS) is plugin for Vim, which frees users from unnecessary actions.
- What does it do
It switches keyboard layout to default keyboard layout 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 keyboard layout, when Vim lost focus and restores this layout, when Vim got input focus.
Optionally it can store layout of your input. So when you enter insert mode it restores layout which was used in insert mode previously.
Imagine, you are editing source code in Vim. In some moment you are digressing, for example, to write in "Twitter":http://twitter.com/. When you will be 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 provides using others layouts, for example, "typography layout by Ilya Birman":http://ilyabirman.ru/typography-layout/.
- How does it works
Keyboard layout is switched by additional application, which is written in Objective-C. When it is started without arguments, it prints index of current layout (for example, U.S. layout has index 0). To switch to some 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.
Vim plugin provides the control. I tried to comment source code maximal detailed so everyone can understand it.
- Preferences
As I said, usually 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 to your ~/.vimrc this line:
@let g:kls_defaultInputSourceIndex = n " n is index of wanted keyboard layout@
If you want to use storing layout of your input, just add to your ~/.vimrc this line:
@let g:kls_insertEnterRestoresLast = 1@
You can get index of wanted layout with additional application: just switch to the layout and execute additional application. It will return the number, which 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 can recompile "source code of additional application":http://gist.github.com/462485 by yourself.
And sorry for my english-hooenglish :).
- Keyboard Layout Switcher
- Что это такое
Keyboard Layout Switcher (KLS) — плагин для Vim, который освобождает пользователя от лишних телодвижений.
- Что он делает
Переключает клавиатурную раскладку на раскладку по умолчанию:
- При запуске Vim;
- При выходе из режима ввода;
- Во время входа в командный режим;
- При двойном нажатии <Esc> в нормальном и командном режимах.
И подождите, подождите...
- Запоминает раскладку, если фокус был потерян, и восстанавливает её при возврате фокуса.
Опционально он может сохранять раскладку режима ввода. Таким образом, при входе в режим ввода он восстанавливает раскладку, которая использовалась в режиме ввода до этого.
Представьте, что вы редактируете исходный код в Vim. В какой-то момент вы отвлекаетесь, например, чтобы написать в "Твиттер":http://twitter.com/. Когда вы вернётесь в Vim, KLS автоматически восстановит раскладку. Это невероятно удобно.
При этом каждый таб помнит свою раскладку.
- Раскладка по умолчанию
Обычно это английская раскладка США (U.S.), однако, KLS позволяет использовать иные раскладки, например, "типографскую раскладку Ильи Бирмана":http://ilyabirman.ru/typography-layout/.
- Как это работает
Непосредственно переключением раскладки занимается вспомогательное приложение, написанное на 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, то вы можете перекомпилировать "исходный код вспомогательного приложения":http://gist.github.com/462485 самостоятельно.