Vimperator - ExtendedHit personalizado para iniciar o script / programa na correspondência regex

2

Eu quero definir uma extensão estendida personalizada no vimperator que:

  1. Corresponde a um padrão de expressão regular
  2. Feeds que correspondem a um script como: ~ / bin / script regex-match-as-arg

Onde devo começar a resolver este problema? O vimperator tem recursos "script-vimperator" que facilitam isso?

Obrigado.

    
por superboot 21.06.2015 / 16:30

1 resposta

3

Algumas dicas (trocadilho não intencional).

Adicionando um novo modo de dica estendida:

  • Você pode definir o modo com a função hints.addMode .
  • Você pode definir o padrão para adicionar dicas com a opção eht , que usa um seletor XPath. (No Pentadactyl você também pode usar seletores CSS, mas não tenho certeza sobre o Vimperator - não há menção a eles nas páginas de ajuda)

Aqui está um exemplo simples que eu uso no Jisho.org para ir para a página de informações de um kanji usando ; / kbd> 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")); });

Correspondendo a uma regex:

Não tenho certeza se o Vimperator usa o XPath 1.0 ou 2.0, ou mesmo se ele permite o uso total das expressões XPath. Eu apenas tentei expressões muito simples eu mesmo. XPath 1.0 não permite regexes (então você teria que se contentar com a funcionalidade que ele fornece). No entanto, o XPath 2.0 tem suporte de regex . Então você pode ser capaz de usá-los. (Eu quero olhar para isso eu mesmo em algum momento.)

Iniciando um script:

Você pode fazer isso com o comando :! . Comandos "ex" arbitrários podem ser iniciados a partir de JS usando liberator.execute() , portanto, para iniciar um script de shell, você pode passar uma função como essa para hints.addMode :

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

Nota sobre pentadáctilo.

Tudo aqui se aplica igualmente ao Pentadactyl, exceto na JS API, você tem que substituir liberator por dactyl .

Vou tentar ver isso mais tarde.

    
por 31.07.2015 / 02:40