После перехода на Хром с Оперы мне не хватало одной вещи: использования браузера без мыши — передвижения по странице, переход по ссылкам и прочее. Часто, когда таскаю ноутбук, бывает необходимость работать без мыши. Увы, тачпаду на моем x350 далеко до «яблочного», поэтому становилось очень неудобно. В Опере такая возможность была доступна без плагинов путем указания горячих клавиш в системном меню. В качестве неравноценной замены использовал плагин Hotkeys.
Он позволял передвигаться по странице, вкладкам, истории, но нельзя было «бегать» по ссылкам, заголовкам.
И неожиданно наступило счастье — был найден плагин Key Binder, который, вносит в браузер многорежимный Vim-подобный подход к работе с браузером. На деле оказалось весьма удобное, многофункциональное, настраиваемое дополнение.

После установки плагин предлагает нам пройти маленький курс обучения на английском языке, в результате которого мы узнаем, что работа с клавиатурой ведется в 3х режимах, которые отображаются в панели:
Этот режим включается по умолчанию или включается из других нажатием на Escape
Мы можем перемещаться по странице стандартным vim-способом: j-вниз на 10px, h-Вверх, k-влево, l-вправо. Можно до конца во все четыре стороны.
Для перехода по ссылкам, нажатиям на кнопки и разные элементы форм есть универсальная клавиша «a» — которая выводит около всех видимых на экране активных элементов уникальные двух буквенные сочетания, напечатав которые производится действие. При этом сочетания удобны при использовании десяти пальцевого метода печати: ff, fj, fk, dk — то есть мизинцем нажимаем «a» и дальше указательными или средними пальцами добиваем команду.

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

Есть еще одна интересная возможность: Команда «A», которая позволяет переходить по ссылкам в виде текста (без тега A)

При нажатии на «o» Открывается собственная стока адреса. Работает поиск в реальном времени. Перемещение между пунктами осуществляется с помощью Tab. Однако не хватает дополнительного поиска внутри сайта по Tab.
Автор реализовал свой поиск по нажатию клавиш "/", "?" (Вперед и назад). Он может быть зависимым от регистра так и нет: Зависит от того используем мы его в строке. При удержании ctrl нам становиться поиск по регулярным выражениям. Нажав на Enter, мы переходим к первому найденному результату. Для перехода к следующему/предыдущему мы используем соответственно «n»/«N».
В этот режим можно перейти либо с помощью уже знакомой клавиши «a», либо сочетанием g+i. Мы можем перемещаться между смежными текстовыми полями двойными последовательным нажатием сочетаний клавиш ctrl-x + ctrl+; и ctrl-x + ctrl -p
Самое интересное начинается в другом — можно работать с текстом без стрелок на клавиатуре: перемещаться, копировать/удалять строки/слова/буквы различными сочетаниями клавиш.
По документации здесь есть режим поиска, но у меня он почему-то не работал…
После нажатия на «s», нам как и в режиме «a» выводятся сочетания клавиш ко всем абзацам и значимым элементам для быстрого перехода. Далее нажав «v» мы фиксируем первую точку для выделения текста и перемещая клавишами навигации (hjkl) мы выделяем нужный кусок. В конце у нас есть 3 варианта:
Для выхода мы нажимаем Escape
В настройках помимо просмотра всех стандартных клавиш, разработчик предоставил возможность редактирования всех клавиш в своеобразной консоли.
Сам формат простой:
Сами клавиши указываются в формате <[клавиша модифактор-] клавиша>.
Можно использовать сочетания пары клавиш.
Для ctrl используется формат <c->, для alt — <m->.
Например:
Так же можно задавать индивидуальные настройки и горячие клавиши для страниц по url.
Мне стандартные клавиши показались не очень удобными, поэтому я немного их подправил и предлагаю сообществу свою настройку. Основные изменения:
После недельного тестирования были выявлены следующие особенности работы:
Данный плагин оказался крайне приятным сюрпризом для меня (как и в свое время vim). С ним оказалось удобно работать, когда под рукой нет мыши, и иногда удобнее, когда она есть =)
P.S.: Еще был замечен интересный эффект: окружающие люди удивляются, когда видят, как серфишь в интернете без хвостатого грызуна.
Он позволял передвигаться по странице, вкладкам, истории, но нельзя было «бегать» по ссылкам, заголовкам.
И неожиданно наступило счастье — был найден плагин Key Binder, который, вносит в браузер многорежимный Vim-подобный подход к работе с браузером. На деле оказалось весьма удобное, многофункциональное, настраиваемое дополнение.

После установки плагин предлагает нам пройти маленький курс обучения на английском языке, в результате которого мы узнаем, что работа с клавиатурой ведется в 3х режимах, которые отображаются в панели:
- B: режим навигации и управление формами
- I: режим работы в текстовых полях
- H: режим выделения и копирования текста
Режим навигации и управление формами
Этот режим включается по умолчанию или включается из других нажатием на Escape
Перемещение
Мы можем перемещаться по странице стандартным vim-способом: j-вниз на 10px, h-Вверх, k-влево, l-вправо. Можно до конца во все четыре стороны.
Ссылки и формы
Для перехода по ссылкам, нажатиям на кнопки и разные элементы форм есть универсальная клавиша «a» — которая выводит около всех видимых на экране активных элементов уникальные двух буквенные сочетания, напечатав которые производится действие. При этом сочетания удобны при использовании десяти пальцевого метода печати: ff, fj, fk, dk — то есть мизинцем нажимаем «a» и дальше указательными или средними пальцами добиваем команду.

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

Есть еще одна интересная возможность: Команда «A», которая позволяет переходить по ссылкам в виде текста (без тега A)
Строка адреса

При нажатии на «o» Открывается собственная стока адреса. Работает поиск в реальном времени. Перемещение между пунктами осуществляется с помощью Tab. Однако не хватает дополнительного поиска внутри сайта по Tab.
Поиск
Автор реализовал свой поиск по нажатию клавиш "/", "?" (Вперед и назад). Он может быть зависимым от регистра так и нет: Зависит от того используем мы его в строке. При удержании ctrl нам становиться поиск по регулярным выражениям. Нажав на Enter, мы переходим к первому найденному результату. Для перехода к следующему/предыдущему мы используем соответственно «n»/«N».
Режим работы в текстовых полях
В этот режим можно перейти либо с помощью уже знакомой клавиши «a», либо сочетанием g+i. Мы можем перемещаться между смежными текстовыми полями двойными последовательным нажатием сочетаний клавиш ctrl-x + ctrl+; и ctrl-x + ctrl -p
Самое интересное начинается в другом — можно работать с текстом без стрелок на клавиатуре: перемещаться, копировать/удалять строки/слова/буквы различными сочетаниями клавиш.
По документации здесь есть режим поиска, но у меня он почему-то не работал…
Режим выделения и копирования текста
После нажатия на «s», нам как и в режиме «a» выводятся сочетания клавиш ко всем абзацам и значимым элементам для быстрого перехода. Далее нажав «v» мы фиксируем первую точку для выделения текста и перемещая клавишами навигации (hjkl) мы выделяем нужный кусок. В конце у нас есть 3 варианта:
- «v» — сбросить выделения для новой попытки
- «y» — скопировать текст в буфер обмена
- «o» — вставить текст в собственную строку адреса
Для выхода мы нажимаем Escape
Редактирование настроек
В настройках помимо просмотра всех стандартных клавиш, разработчик предоставил возможность редактирования всех клавиш в своеобразной консоли.
Сам формат простой:
bind/ubind <режимы> <клавиша> <назначаемая команда>
Сами клавиши указываются в формате <[клавиша модифактор-] клавиша>.
Можно использовать сочетания пары клавиш.
Для ctrl используется формат <c->, для alt — <m->.
Например:
bind b j [tab.scroll top:+50]
говорит, что при на клавишу j в режиме перемещения мы сдвигаем окно на 50px (когда по-умолчанию всего 10).bind i <c-z> [input.undo]
— назначаем на ctrl-z отмену последнего действия в режиме редактирования текста
Так же можно задавать индивидуальные настройки и горячие клавиши для страниц по url.
Оптимизация настроек
Мне стандартные клавиши показались не очень удобными, поэтому я немного их подправил и предлагаю сообществу свою настройку. Основные изменения:
- Сдвинул вправо клавиши перемещения на «jkl;». Несмотря на мою любовь к клавишам перемещения в vim, в бразуере мне это кажется неудобным, так как при команде «a» необходимо постоянно сдвигать руку на стандартную позицию
- Поместил рядом выше перемещение по табам и по истории
- В редактировании текста поставил привычные клавиши ctrl+c,ctrl+x,ctrl+v,(copy,cut,paste) ctrl+z,ctrl+y,ctrl+Z (undo, redo)
# Определяем свои настройки myBind
set myBind
#Сбрасываем разные стандартные клавиши
ubind bs o
ubind bs u
ubind bs h
ubind bs H
ubind bs d
ubind ib <c-c>
ubind ib <c-v>
ubind ib <c-x>
##### Передвижение по странице #####
# Я перенес команды на клавишу вправо т.е. "jkl; "
# При этом рука не будет перемещаться при
# нажатии на "a"
# При удерживании Shift мы перемещаемся до упора во все стороны
# Попутно увеличил скорость перемещения
bind b L [tab.scroll top:0]
bind b K [tab.scroll top:100%]
bind b J [tab.scroll left:0]
bind b : [tab.scroll left:100%]
bind b k [tab.scroll top:+50]
bind b l [tab.scroll top:-50]
bind b j [tab.scroll left:-50]
bind b ; [tab.scroll left:+50]
##### Передвижение при редактировании текста #####
# Так же сдвинул вправо
# Мы будем перемещаться при удерживании ctrl
bind ic <c-J> [caret.beginningOfLine]
bind ic <c-:> [caret.endOfLine]
bind ic <c-k> [caret.nextLine +1]
bind ic <c-l> [caret.nextLine -1]
bind ic <c-j> [caret.forwardChar -1]
bind ic <c-;> [caret.forwardChar +1]
bind ic <c-w> [caret.forwardWord +1]
bind ic <c-b> [caret.forwardWord -1]
##### Переход по табам #####
# Рядом клавиш выше мы можем перемещаться по табам - "o"/"i"
#
bind bs o [tab.select +1]
bind bs i [tab.select -1]
##### Перемещение по истории #####
# Также рядом выше
# u - назад
# p - вперед
bind bs u [tab.go -1]
bind bs p [tab.go +1]
##### Дубликат вкладки #####
bind bs D [tab.clone]
##### Закрыть таб #####
# и открыть закрытый (стандарт в браузере ctrl-shift-t)
bind bs c [tab.close]
bind bs C [tab.undo]
##### Строка адреса #####
# Ее переместил на h из-за табов
bind bs h [mode.change id:c putStr:"open "]
bind bs H [mode.change id:c putStr:"open <url"]
##### Режим редактирования текста #####
# В стандартом режиме горячие клавиши мне показались неудобными,
# поэтому установил привычные
# copy, cut, paste
bind ic <c-z> [input.undo]
bind ic <c-y> [input.redo]
bind ic <c-Z> [input.redo]
bind ic <c-c> [region.kill][kill.top]
bind ic <c-x> [region.kill]
# Перемещение по текстовым полям
# вместо стандартного Tab - который переходит по всем полям подряд
bind i <c-]> [input.focus next]
bind i <c-[> [input.focus previous]
###### Режим копирование теста ######
# здесь также сдвинул стандартные клавиши вправо
bind s hh [caret.beginningOfBuffer]
bind s G [caret.endOfBuffer]
bind s J [caret.beginningOfLine]
bind s : [caret.endOfLine]
bind s k [caret.nextLine +1]
bind s l [caret.nextLine -1]
bind s j [caret.forwardChar -1]
bind s ; [caret.forwardChar +1]
bind s w [caret.forwardWord +1]
bind s b [caret.forwardWord -1]
# Запоминаем настройки
set
# добавляем их в стандартный набор
kv set defaultKeyMap defaultKeyBind defaultSearch myBind
Использование плагина
После недельного тестирования были выявлены следующие особенности работы:
- Не работают клавиши от Gmail (я лично их почти не использую, поэтому все нормально)
- На форумах не работают bb-коды (то же самое)
- В режиме редактирования ctrl-c — работает как ctrl-x + ctrl-v
- Не выделяется весь тест в режиме редактирования — ctrl-a — в настройках найти не смог
- При нажатие F6 (переход в стоку адреса) — обратно в командный режим вернуться не получается
Заключение
Данный плагин оказался крайне приятным сюрпризом для меня (как и в свое время vim). С ним оказалось удобно работать, когда под рукой нет мыши, и иногда удобнее, когда она есть =)
P.S.: Еще был замечен интересный эффект: окружающие люди удивляются, когда видят, как серфишь в интернете без хвостатого грызуна.