Как стать автором
Обновить

Автозамена в Firefox: It'sAllText+gVim

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

bash.im

Часть 1. Вступление


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

Поиск в интернете нужного функционала не дал ничего и на какое-то время я отказался от затеи. Но вот при написании нового поста я решил — хватит! И начал строить велосипед.

Часть 2. Vim


Я активно пользуюсь Vim не только для скриптов, но и для перевода некоторых текстов, поэтому вопрос автозамены там тоже актуален — исправлять банальные опечатки.

В мане для Vim`а, была найдена нужная функция (команда, директива — кому как хочется) — iab. В мане написано, что это удобно использовать для аббревиатур, но это не отменяет использование и для всего остального. Пользоваться довольно просто — в командном режиме Vim пишем:
:iab исходное желаемое

И с этих пор и до закрытия документа всё «исходное» будет автоматически меняться на «желаемое». При этом не важно напечатан текст или вставлен.

Но, давайте представим, что у нас не одно слово, а несколько десятков. Писать их вручную — не вариант. На помощь идёт редактирование .vimrc. Вот кусок моего конфига, который отвечает за автозамену:

:iab нжинкс Nginx
:iab гит git
:iab гитхаб github
:iab вагрант vagrant
:iab виртуалбокс VirtualBox

Теперь можно не переключать раскладку, а писать всё на одной.

Часть 3. Связываем Vim и FireFox


Можно пойти путём быстрого старта — открываем Vim пишем текст ==> копируем текст ==> вставляем текст. Никаких настроек, всё просто и банально.

А можно пропустить несколько шагов и цепочка будет следующей: нажимаем хоткей ==>; пишем текст ==> :x. Но! Для этого нужно сделать пару телодвижений (ну прямо капиталовложения и эксплуатационные расходы), а именно установить и настроить замечательное дополнение It'sAllText.

Дополнение делает следующее — распознаёт на странице текст-box и позволяет редактировать во внешнем редакторе, при этом тексты синхронизируются при сохранении в редакторе.

Установив дополнение, я с лихорадочным блеском полез в настройки, в поле «editor» вписал "/usr/bin/vim", забиндил на хоткей. (вместо хоткея можно тыкать мышкой в поле «edit», которое появляется, в зависимости от настройки, с определённой стороны).

Но меня ждало разочарование в виде ошибки.



Ок, лезем на github проекта, читаем про тему с этой ошибкой и понимаем, что «Vim — консольный редактор, не работает с дополнением».

Но ничего, нам же нужен наш велосипед, верно?

На помощь идёт gvim. Опять идём в настройки, прописываем в поле editor "/usr/bin/gvim", закрываем окно.



Дрожащей рукой нажимаем заветные клавиши и видим открытый редактор! Красота! А так как gvim поддерживает команды Vim`а чуть более, чем полностью, то пользоваться им вполне комфортно. А когда через пару секунд я понял, что .vimrc тоже подтянулся сам, то вообще всё стало уютно.

Плюсы решения:

1. Стало удобно писать посты! Меньше «пальцедвижений»;
2. При глюке (у меня ЖЖ пару раз текст сбрасывало далеко-далеко) можно без
проблем взять текст — сохраняется в файле, который указан в настройках.

Минусы:

1. Не все текстовые поля поддерживаются (люди пишут про невозможность
редактировании википедии, например);
2. Эффект alias — за другим компьютером, телефоном, планшетом будет очень не
удобно.

Итак, коротко и без воды лирики:

1. Установка gvim
2. Настройка .vimrc для автозамены в виде «iab гит git»
3. Установка дополнения It«sAllText
4. Настройка дополнения на gvim и хоткей.

Действия выполнялись под Ubuntu Linux, но вполне кроссплатформено всё.

Да, я помню о просьбе не писать „статься написана в таком-то редакторе“, но считаю, что сейчас это имеет смысл — статья написана в gvim по указанному в статье способу. А если еще освоить markdown…

Спасибо за внимание!
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.