Vim + Firefox = Vimperator

Опубликовано: 01.09.2018

видео Vim + Firefox = Vimperator

Using Firefox like Vim with VimFx

После того, как я купил себе нетбук, я старался максимально меньшее количество операций делать с помощью мышки. Именно поэтому я начал смотреть в сторону tiled wm, а затем уже искал способы управлять и своим браузером полностью с клавиатуры. В общем долго искать не пришлось. Вариантов не так много как хотелось бы. Один их них это использовать дополнение Vimperator для Firefox. Данное дополнение, убирает лишние меню и панели, и позволяет почти полностью управлять вашим браузером с клавиатуры, при этом, предоставляет еще пару интересных возможностей и позволяет добавлять пользовательские js скрипты. А главное, как понятно из названия этого дополнения: управление вашим браузером будет похожим на управление текстовым редактором вим! Конечно, людям которые не используют и никогда не использовали vim будет трудно им управлять, но если вам действительно хочется прочувствовать всю мощь управления с клавиатуры, то попробовать стоит. Быть может, вам захочется попробовать и vim ;)



Далее, я не претендую на полноту. Я просто написал статью для того, что бы человек, который захотел овладеть всей мощью vimperator, мог от чего-то отталкиваться. Я сам еще очень много не знаю как про vim, так и про vimperator и оба, мне с каждым днем, отрываю все больше, и больше интересных фишек.

Итак, приступим.


Firefox: Browser Skins, vim Shortcuts and Search Keywords!

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


Vimperator - Following Links

Предположим что Вы установили данное дополнение и перед вами примерно такая картина

Firefox c включенным дополнением Vimperator

При первом запуске, vimperator покажем вам свое очень обширное, справочное руководство на английском. Далее, я лишь кратко (и на русском) расскажу об основных и самых нужных на мой взгляд возможностях. Помните, вы всегда можете обратиться к этой справке набрав :help или :tabopen help что бы посмотреть в новой вкладке.

Так же, стоит помнить про замечательную клавишу tab. С ее помощью, можно дополнять название команд, и всего остального. Почти во всех командах что будут ниже,она применима и жизненно необходима :)

Базовая навигация

В Vimperator, так же как и в vim, несколько режимов. Основные из них это нормальный режим (в котором происходят базовая навигация), режим ввода текста, и режим выделения текста. Команды ниже, действуют в "нормальном режиме" vimperator:

o \ :open - Откроет следующий за ним адрес в текущем табе. O \ - Отредактировать текущий url и открыть его в текущем табе t \ :tabopen - Откроет следующий за ним адрес, в новом табе y - скопировать текущий url в буфер обмена p - открыть url из буфера обмена, в текущем табе P - открыть url из буфера обмена, в новом табе d - закрыть текущую вкладку u - отмена закрытия вкладок b# - вместо # подставляем номер нужной вкладки f - посветить все линки на странице, и пронумеровать. После этого, цифрами выбираем нужный, и переходим на него F - тоже самое что и f только, ссылка откроется в новом табе. r - перезагрузить текущую страницу R - перезагрузить все страницы x - остановить загрузку текущей страницы X - остановить загрузку всех загружаемых страниц ZZ - выход из firefox с сохранением всех открытых вкладок

Для перемещения по станицы так же множество способов. Это и h\j\k\l(влево\вниз\вверх\вправо), или ctrl-d\ctrl-u для более быстрого перемещения вниз\вверх, или ctrl-f\ctrl-b для перелистывания экрана вверх\вниз. Так же, можно перейти на определенное количество процентов старницы. Например для того, что бы перемотать 75% станицы, достаточно набрать 75%gg. Конечно, вместо 75 можно использовать любое другое число. Еще можно переместиться сразу в самый вверх страницы набрав gg, или в самый низ набрав G (shift-g).

Перемещаться по табам постоянно нажимая b и номер таба, мне показалось не очень удобным, и случайно (после общения с emacs) я обнаружил другой, более удобным на мой взгляд способ: ctrl-n\ctrl-p - который, позволяет перемещаться по табам влево\вправо. Так же, можно перемещаться на нужный таб с помощь alt-1\9. Данный способ удобен когда не так много вкладок.

Кстати небольшое отступление. Стоит помнить, что большие и маленькие буквы, могут выполнять разные действия. Например как было выше: o - откроет url в текущем табе, а O (Shift-o) - позволит отредактировать и открыть в текущем табе, текущий url.

Режим ввода текста

По сути, обычный режим. Ничем особо не отличается от обычного ввода текста кроме пары полезных клавиатурных комбинаций. Возможно их больше, но я их пока не обнаружил:

ctrl-w - удалить предыдущее слово ctrl-a - перейти в начало строки ctrl-k - удалить от позиции курсора до конца строки

Для выхода из этого режима в нормальный, достаточно нажать клавишу esc :)

Режим перемещения по тексту\выделения текста

Для того что бы войти в режим перемещения по тексту, надо нажать f7. Первый раз он выведет окно с предупреждением о том, что мы только что перешли в этот режим. Жмем галочку больше не показывать (к сожалению мышкой) и жмем Ок. И так. В этом режиме, мы можем перемещаться по тексту, использую vim' like навигацию. Это почти все те же самые комбинации для перемещения по странице + некоторые дополнительные:

0 - в начало строки \$ - в конец строки w - следующее слово b - предыдущее слово

Из этого режима можно перейти в режим выделения текста. Для этого нажмите v и используйте те же команды для перемещения по тексту. Как закончите выделение, можете нажать y(yankle) для того, что бы скопировать выделенный текст в буфер обмена. Не правда удобно? И совсем не нужна мышка :)

Дополнения, загрузки и прочее прочее :)

Когда я только поставил это дополнение, то я столкнулся с некоторыми проблемами из-за отсутствия меню, всплывающих окон и прочего, но они никуда не пропали. Просто оказались спрятаны.

Например для того, что бы посмотреть или установить дополнения, то достаточно набрать :addons и в текущем буфере откроется диалог с дополнениями. Так же с загрузками :downloads или с общими настройками :preferences (жаль что в всплывающем окне).

Так же есть очень удобное средство которые называется emenu. Вызывается просто: в командном режиме набираем :emenu и жмем таб, что бы посмотреть все доступные пункты, а они те же, что и в обычном меню. Т.е. это своеобразный "заменитель меню".

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

Любое дополнение, можно как удалить, так добавить не прибегая к вызову специального диалога. Для этого служат следующие команды:

:extadd - установить дополнение. Нужно указать путь до .xpi файла :extdelete - для удаления дополнения. В качестве аргумента имя дополнения :extenable - для того что бы включить дополнение :extdisable - выключение дополнения. :extensions - вывод списка всех установленных дополнений :extoptions - настройки дополнения. Следом за командой, надо написать имя дополнения

Так же дело обстоит с панелями инструментов. Для управления ими служат команды :toolbarshow, :toolbarhide и :toolbartoggle следом за которыми, следут указать имя панели. Я думаю что если вы дошли до сюда, то Вы сами поймете их назначение, но на всякий случай напишу. :toolbarshow - показывает тулбар, :toolbarhide - скрывает, а :toolbartoggle включает или выключает панель в зависимости от ее текущего состояния.

Во время путешествия по просторам сети, бывает полезно видеть всегда какую либо информацию, например список закладок на страницы. Для этого в vimperator, можно использовать боковую панель. Ее использование весьма тривиально: :sidebar что бы открыть что либо. Например :sidebar Download и :sbcl что бы закрыть сайдбар.

Поиск

Для поиска вниз по тексту, достаточно набрать / и следом текст. Например /hello будет искать по тексту вниз и подсвечивать. Для перемещения по найденным результатам используется n для перехода к следующему найденному слову, и N для предыдущего. Для поиска к началу документа надо заменить / на ?.

Для поиска слова под курсором к концу документа следует нажать * над курсором, или # для того же только к началу страницы.

Что бы убрать подсветку результатов используется команда :noh или :nohlsearch.

Закладки, QMarks, LocalMarks и история

При просмотре длинной страницы, например книги или документации, бывает необходимость посмотреть что-то, что было в на этой же страницы выше. Можно конечно промотать до нужного места, затем вернуться назад, но разве удобно каждый раз искать место на котором остановились? Мне кажется не особо. Куда удобнее использовать такую вещь как LocalMarks. Использовать просто. Над нужным местом жмем m и далее, большую или маленькую любую букву или цифру которая будет выступать в качестве "локальной марки". Затем можно вернуться например в начало страницы, и при необходимости вернуться к этому месту, достаточно нажать ' и следом за ней букву или цифру, которую мы выбрали в качестве "локальной марки".

Пожалуй самым удобным что я для себя нашел, это QuickMarks. Когда я только начал использовать vimperator, я столкнулся с проблемой доступа к часто используемым сайтам. Например к google.com. Приходилось использовать дополнение SpeedDial которое было не очень удобным. Так было до тех пор пока я не обнаружил такую возможность. Суть проста, но гениальна и принцип схож с описываемыми выше LocalMarks. На нужном сайте, или станице сайта, нажимаем M и выбираем букву для быстрого доступа. Например для http://google.com, я выбрал G. Для того что бы быстро открыть гугль, достаточно нажать go g. Т.е. команда go и наша буква для быстрого доступа. Так же, можно открыть в новой вкладке, достаточно просто вместо go, использовать gn. Конечно же можно посмотреть все используемые QMarks командой :qmarks. Для удаления используется :delqmarks для одной, или :delqmarks! для всех.

Как подобает любому vim like приложению - любую задачу можно выполнить очень разными способами. При работе с историей, это чувствуется очень хорошо. Путешествовать по ней можно четырьмя разными способами. Хотя возможно, в них есть какие-то отличия не найденные мною. Для того что бы вернуться назад: Ctrl-o, H, alt-left(mod4-left), :back. И вперед: ctrl-i, L, alt-right(mod4-right), :forward. Тут уж кому как удобнее, но я, лично, предпочитаю ctrl-o\i. Наверное просто по привычке. Кстати, любой из этих способов, можно комбинировать с цифрами. Т.е. что бы например вернуться на 3 страницы назад, можно нажать 3, а затем ctrl-o. Или для того чтобы перепрыгнуть вперед на пять страниц, можно использовать 5L и т.д. Так же можно посмотреть историю недавно посещенных сайтов с помощью команды :history.

Работа с закладками, это один из тех моментов, которые мне не сильно понравился. Вполне возможно, что я просто не до конца разобрался. Для того чтобы добавить закладку, надо нажать a. В командной строке появиться команда :bmark и следом параметр -title c названием страницы. Title можно изменить по усмотрению, так же можно использовать -tags=тэг1,тэг2,тэг3 и т.д. И -keywords для ключевых слов. Впоследствии, использование тэгов и ключевых слов, может заметно облегчить поиск. Команда A, используется для добавление в закладке страницы, или удаления если она уже там есть. Для просмотра или поиска закладок, служит команда :bmarks. Следом стоит указать те самые ключевые слова, или тэги. Иначе Вы можете по просту заблудиться в них. Для удаления закладки используется команда :delbmarks которая в качестве аргумента принимает url. Так же можно удалить все имеющиеся закладки с помощью :delbmars!. Хотя я не понимаю зачем такое может понадобиться :)

В завершение

Как я писал в самом начале, vimperator еще можно дополнительно настроить с помощью конфигурационного файла (в Linux он находится в домашней директории, и должен называться .vimperatorrc), цветовых тем и пользовательских java script. В Linux цветовые темы должны лежать в домашней директории, в папке .vimperator/colors, а js должны находиться так же в домашней директории в папке .vimperator/plugin. Все цветовые темы и скрипты можно найти на официальном сайте vimperator по адресу www.vimperator.org . Я лично использую цветовую схему zenburn , а из скриптов buftabs и delicious . Первый показывает в статусной строке табы(правильнее будет буферы), а второй позволяет добавлять закладки в delicious.com. В общем у меня, все это выглядит так:

Firefox дополнение Vimperator - выбор ссылки для перехода

И в моем конфиге, всего пара строк:

set runtimepath=/home/bosha/.vimperator " Выключил отображение табов. Вместо этого, использую buftabs. set showtabline=0 set go-=r source! /home/bosheee/.vimperatorrc.local " Ставим нужную цветовую схему colorscheme zenburn " vim: set ft=vimperator:

Плагины если есть, и находяться в правильной директории, загрузятся сами. Все параметры, можно редактировать на ходу прямо из самого vimperator. Я на этом подробно останавливаться не буду. Слишком много информации. Если вам это необходимо, прочитите документацию или спросите меня, я по возможности помогу.

Скачать плагин можно тут - www.vimperator.org . Кстати, рекомендую ставить именно оттуда. На сайте mozilla версия 2.1, с которой некоторые плагины, не хотят работать.

На этом я закончу. Надеюсь данный пост, будет полезен людям, которые пожелали овладеть vimperator'ом.

rss