pentadactyl - açúcar sintático para comando

0

Em Pentadactyl: use o url da guia atual no comando Eu aprendi como criar um comando que usa o URL do buffer atual. Estou usando isso para reescrever o URL para usar o proxy hypothes.is "via hipótese":

map -builtin <C-x><C-V> :execute ':open http://via.hypothes.is/' + buffer.URL

Mas quando pressiono C-x C-V , vejo todo o comando impresso na "área de eco":

:execute ':open http://via.hypothes.is/' + buffer.URL

Existe uma maneira de imprimir essa impressão mais rapidamente, para que todo esse comando tenha um "alias" como :via ?

    
por Joe Corneli 25.11.2015 / 10:41

1 resposta

1

definindo um alias

A maneira mais simples seria dar o comando um alias e mapear o atalho para invocar esse alias.

command! via :execute ':open http://via.hypothes.is/' + buffer.URL
map -b <C-x><C-V> :via

Você pode então executar o comando com a tecla de atalho ou na linha de comando por meio do alias via .

executando o comando imediatamente

Dito isto, você realmente precisa do comando para imprimir na linha de comando e esperar que você pressione Enter ? Uma solução preferível seria simplesmente executar o comando imediatamente quando você executar a atadura de teclado. Você pode fazer isso por:

  1. adicionando <CR> ao final do comando executado

    map <C-x><C-v> :via<CR>
    

    (esta solução é portátil para o Vimperator); ou

  2. usando a opção -ex para o comando map .

    map <C-x><C-v> -ex via
    

executando o comando e imprimindo uma mensagem

Se por algum motivo você não quiser um alias real, mas quiser que o comando seja executado durante a impressão "via" na área de eco, você pode usar uma ligação como esta:

map <C-x><C-V> -js 
\ dactyl.open('http://via.hypothes.is/' + buffer.URL);
\ commandline.echo('via',commandline.HL_INFOMSG);
\ setTimeout(function(){ commandline.echo('', commandline.HL_INFOMSG); }, 500);

O 500 no final é o atraso (em milissegundos) antes que a mensagem desapareça. Se você quiser que a mensagem permaneça até que você insira um novo comando ou altere as guias, apenas remova a última linha completamente.

    
por 16.01.2016 / 02:49