Vimperator - Niestandardowy ExtendedHit do uruchamiania skryptu / programu po dopasowaniu wyrażenia regularnego


2

Chcę zdefiniować niestandardową rozszerzoną wskazówkę w vimperatorze, która:

  1. Dopasowuje wzór wyrażenia regularnego
  2. Kanały pasujące do skryptu jako takie: ~ / bin / script regex-match-as-arg

Gdzie powinienem zacząć rozwiązywać ten problem? Czy vimperator ma funkcje „vimperator-script”, które to ułatwiają?

Dzięki.

Odpowiedzi:


3

Kilka wskazówek (gra słów nie przeznaczona).

Dodanie nowego trybu rozszerzonej podpowiedzi:

  • Możesz zdefiniować tryb za pomocą hints.addModefunkcji.
  • Możesz ustawić wzorzec, aby dodać podpowiedzi za pomocą ehtopcji, która pobiera selektor XPath. (W Pentadactyl możesz również używać selektorów CSS, ale nie jestem pewien co do Vimperatora - nie ma o nich wzmianki na stronach pomocy)

Oto prosty przykład, którego używam na Jisho.org, aby przejść do strony informacyjnej dla używanego kanji ;k.

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")); });

Dopasowywanie wyrażenia regularnego:

Nie jestem pewien, czy Vimperator używa XPath 1.0 lub 2.0, a nawet czy pozwala na pełną moc wyrażeń XPath. Sam próbowałem tylko bardzo prostych wyrażeń. XPath 1.0 nie zezwala na wyrażenia regularne (więc musisz zadowolić się funkcjonalnością, którą zapewnia). Jednak XPath 2.0 ma obsługę wyrażeń regularnych . Więc może być w stanie z nich korzystać. (Chcę kiedyś się temu przyjrzeć.)

Uruchamianie skryptu:

Możesz to zrobić za pomocą :!polecenia. Dowolne polecenia „ex” można uruchamiać z JS za pomocą liberator.execute(), więc aby uruchomić skrypt powłoki, możesz przekazać taką funkcję do hints.addMode:

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

Uwaga na temat pentadaktylu.

Wszystko tutaj odnosi się również do Pentadactyl, z wyjątkiem API JS, trzeba zastąpić liberatorprzez dactyl.

Spróbuję na to spojrzeć później.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.