2

Я хочу определить пользовательский расширенный совет в vimperator, который:

  1. Соответствует шаблону регулярных выражений
  2. Каналы, соответствующие сценарию как таковые: ~/bin/script regex-match-as-arg

С чего мне начать решение этой проблемы? Есть ли у vimperator функции "vimperator-script", которые облегчают это?

Благодарю.

1 ответ1

3

Некоторые намеки (каламбур не предназначен).

Добавление нового расширенного режима подсказок:

  • Вы можете определить режим с помощью функции hints.addMode .
  • Вы можете установить шаблон для добавления подсказок с опцией eht , которая использует селектор XPath. (В Pentadactyl вы также можете использовать селекторы CSS, но я не уверен насчет Vimperator - их нет на страницах справки)

Вот простой пример, который я использую на Jisho.org, чтобы перейти на информационную страницу для использования кандзи ; к

js set eht+=[k]:span[class=text]
hints.addMode('k','open kanji details',function(e) { liberator.open(decodeURIComponent("http://jisho.org/search/" + e.textContent + "%2523kanji")); });

Соответствует регулярному выражению:

Я не уверен, использует ли Vimperator XPath 1.0 или 2.0, или даже если он позволяет использовать все возможности выражений XPath. Я только пробовал очень простые выражения. XPath 1.0 не допускает регулярные выражения (поэтому вам придется обойтись без функциональности, которую он предоставляет). Тем не менее, XPath 2.0 имеет поддержку регулярных выражений. Таким образом, вы можете использовать их. (Я хочу посмотреть на это сам когда-нибудь.)

Запуск скрипта:

Вы можете сделать это с :! команда. Произвольные команды "ex" могут быть запущены из JS с помощью liberator.execute() , поэтому для запуска сценария оболочки вы можете передать такую функцию в hints.addMode:

function(e) { liberator.execute("!~/bin/script " + e.textContent) }

Обратите внимание на пентадактиль.

Все здесь в равной степени относится и к пентадактилю, за исключением API JS, вы должны заменить liberator на dactyl .

Я попытаюсь взглянуть на это позже.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .