Как открыть предыдущую / следующую страницу в новой вкладке в пентадактиле?

739
maki57

Если нажатие Hи Lприводит вас к предыдущей и следующей страницам соответственно (Alt + Left / Right на vanilla Firefox), что является ключом для открытия предыдущей / следующей страницы в новой вкладке?

Функциональность, которую я пытаюсь достичь, подобна среднему щелчку левой и правой стрелок рядом с адресной строкой, желательно без необходимости доступа к истории (т. Е. Для режима частного просмотра). Если возможно, есть ли способ сделать это для другого элементы в :juсписке (прыжок)?

Примечание (2015/05/15): Некоторое время назад я переключился на Vimperator, и мне по-прежнему не хватает «открыть следующую / предыдущую страницу в новой вкладке», но решение, отмеченное ниже, прекрасно работает, когда я снова включил пентадактиль.

Примечание (2015/05/17): Pyrocrasty добавил версию Vimperator в решение, которое также прекрасно работает.

1
Я добавил [версию vimperator] (https://gist.github.com/troyp/b4b4b75a0ef59a986e94) суть. Это работает с версией Vimperator, которую я имею здесь. Дайте мне знать, если есть какие-либо проблемы с этим. (Я обычно не использую Vimperator.) pyrocrasty 9 лет назад 1

1 ответ на вопрос

1
pyrocrasty

ОБНОВЛЕНИЕ: полностью рабочее решение (см. Нижнюю часть ответа)


Встроенное решение: сломано?

На самом деле есть ключ Ctrl+, Tкоторый предназначен для выполнения следующего отображения в новой вкладке. Тем не менее, это не работает для меня вообще. Я не знаю почему.

Также есть команда ex, tabкоторая делает то же самое для следующей команды ex. Тем не менее, он не работает должным образом с командами истории. Он дублирует вкладку, но не возвращается.


Двухступенчатое решение

Вы можете достичь этого, комбинируя две команды:

  1. tabduplicate(или tabdu) дублирует текущую вкладку, сохраняя историю.

    Вы можете привязать его к ключу, добавив такую ​​строку в ваш файл .pentadactylrc:

     map -g user -ex C :tabduplicate 
  2. Hи Lназад и вперед, как вы упомянули.

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

примечание: положение новых вкладок.

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

Если вы предпочитаете, чтобы вкладки открывались рядом с текущей, вы можете использовать расширение, чтобы открывать все новые вкладки после текущей вкладки. Tab Mix Plus является популярным выбором.


Первая попытка решения с одной командой.

У меня возникли проблемы при попытке получить одну команду, чтобы дублировать вкладку, а затем двигаться вперед или назад в ней. Тем не менее, легко скопировать вкладку в фоновом режиме, а затем переместиться вперед или назад в исходной вкладке.

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

 map -g user -ex [t :execute "tabduplicate! | back" map -g user -ex ]t :execute "tabduplicate! | forward" 

Затем вы можете открыть предыдущую страницу в новой вкладке с помощью [t(вы можете использовать однобуквенную привязку клавиш, если она у вас есть).


ОБНОВЛЕНИЕ: Полностью рабочее решение Javascript

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

Код находится в этой сути (обновление: версия vimperator ). Либо включите его непосредственно в файл .pentadactylrc, либо сохраните его отдельно (предпочтительно в каталоге .pentadactyl) и получите его из .pentadactylrc. например.

:source "~/.pentadactyl/backt-forwardt.penta" 

Тогда вы можете использовать ghи glдля достижения тех же результатов, что и при нажатии средней кнопки «назад» / «вперед».