Pentadactyl - syntaktischer Zucker für den Befehl

620
Joe Corneli

Unter Pentadactyl: Verwenden der URL des aktuellen Tabs in Befehl Ich habe gelernt, wie ein Befehl erstellt wird, der die URL des aktuellen Puffers verwendet. Ich verwende dies, um die URL umzuschreiben, um den hypothes.is- Proxy zu verwenden:

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

Wenn ich aber drücke, C-xC-Vsehe ich den ganzen Befehl im "Echo-Bereich":

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

Gibt es eine Möglichkeit, diesen Ausdruck kurzer auszudrucken, so dass der gesamte Befehl einen "Alias" hat :via?

0

1 Antwort auf die Frage

1
pyrocrasty

einen Alias ​​definieren

Der einfachste Weg wäre , dem Befehl einen Alias zu geben und die Tastenkombination für das Aufrufen dieses Alias ​​zuzuordnen.

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

Sie können den Befehl dann entweder mit der Tastenkombination oder über die Befehlszeile über den Alias ​​ausführen via.

den Befehl sofort ausführen

Benötigen Sie eigentlich den Befehl, um in der Befehlszeile auszudrucken und darauf zu warten, dass Sie treffen Enter? Eine bevorzugte Lösung wäre, den Befehl sofort auszuführen, wenn Sie die Tastenkombination ausführen. Sie können das entweder durch:

  1. Hinzufügen <CR>am Ende des Befehls, den Sie ausführen

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

    (Diese Lösung ist portabel für Vimperator). oder

  2. Verwenden Sie die -exOption zum mapBefehl.

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

Befehl ausführen und eine Nachricht drucken

Wenn Sie aus irgendeinem Grund keinen tatsächlichen Aliasnamen wünschen, sondern nur möchten, dass der Befehl ausgeführt wird, während im Echo-Bereich "via" gedruckt wird, können Sie eine Bindung wie folgt verwenden:

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

Das 500Ende ist die Verzögerung (in Millisekunden), bevor die Nachricht verschwindet. Wenn Sie möchten, dass die Nachricht bleibt, bis Sie einen neuen Befehl eingeben oder die Registerkarten ändern, entfernen Sie einfach die letzte Zeile vollständig.

@Joe Corneli: Danke für den Hinweis auf die fehlenden Tastenanschläge in den `map`-Befehlen des zweiten Abschnitts. Nicht sicher, warum Ihre Bearbeitung abgelehnt wurde, aber ich habe die Befehle trotzdem korrigiert. pyrocrasty vor 8 Jahren 0