Еще один способ работы в VIM для русскораскладочных

Для чего это нужно?

Если у вас было так при работе с VIM:

ввоннЗ.ешеду
Черт! Твою ж медь! Опять!
ddjyyP/title

то этот скрипт для вас. Аналогичная ситуация, если у вас есть скрипт:

в
в работу вступает скрипт, меняет системную раскладку на английскую и печатает букву в как d
djyyP/title
🙂

(Этот скрипт — моя работа :))

Словами:

  • это нужно тем, кто использует русскую раскладку
  • если включена системная русская раскладка при работе в VIM, скрипт автоматически переключает системную раскладку на английскую
  • введенные при активной русской раскладке команды транслирует в комманды на английском и исполняет; то есть, вам не придется выполнять второй раз команду, введенную на русском языке

Что у меня для этого должно быть?

  • ОС GNU/Linux с графическим интерфейсом
  • установленная программа xmacro
  • VIM

Как установить?

  • установить линукс 🙂
  • установить xmacro:
apt-get install xmacro

или

yum install xmacro

или

вы сами знаете как :)

  • скачать ZIP-файл и распаковать его содержимое в домашнюю директорию
  • или скачать при помощи git:
git clone https://github.com/wwju/change_layout_in_vim.git

в результате у вас должна быть папка

~/.change_layout

  • переходим в папку ~/.change_layout и даем права на исполнение двум скриптам, которые содержатся в этой папке:
cd ~/.change_layout

chmod +x cl.sh

chmod +x change_layout.sh

  • устанавливаем сочетание клавиш для смены раскладки

(если вы используете для переключения раскладки правый альт, то вам нужно пропустить этот шаг)

в терминале запускаем:

xmacrorec2

жмем esc

жмем сочетание клавиш, которое вы используете для смены раскладки

жмем esc

у вас в терминале должно появиться что-либо наподобие:

>>xmacrorec2

Server VendorRelease: 11300000

XRecord for server ":0" is version 1.13.

Press the key you want to use to end the application. This key can be any key, 

as long as you don't need it while working with the remote display.

A good choice is Escape.

The chosen quit-key has the keycode: 9

XQueryPointer returned: 1

Got Start Of Data

Skipping...

- Skipping stale KeyRelease event. 1

MotionNotify 391 570

KeyStrPress ISO_Next_Group

KeyStrRelease ISO_Next_Group

^[Got QuitKey, so exiting...

xmacrorec2: Exiting. 

то что у вас получилось вместо ISO_Next_Group, вы должны вставить в файл change_layout.sh вместо ISO_Next_Group:

скопируйте содержимое файла vimrc в свой .vimrc

Как использовать?

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

Как это работает?

map в :!~/.change_layout/cl.sh<CR><CR>d

при нажатии на букву в в русской раскладке запускается скрипт, иммитирующий нажатие клавиши левый альт, которая у меня меняет раскладку, после печатается английская буква d

Есть ли подводные камни, недостатки?

а как же без них?

  • я не смог наладить смену раскладки на сочетания клавиш и на нажатие Ж, ,, . (двоеточие, запятая и точка), которые в VIM запускают строку для ввода комманд или поиска.
  • скрипт не работает в других ОС, но, думаю, в MAC OS X есть аналог xmacro
  • при смене раскладки VIM мигнет
Реклама

Метки: , , ,

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s

%d такие блоггеры, как: