Pentadactyl: Verwenden Sie die URL der aktuellen Registerkarte

814
Jon Lorusso

Ich möchte eine Zuordnung erstellen, um einen Link zu der Seite zu senden, die auf der aktuellen Registerkarte angezeigt wird:

:map ,m :! mail -s "here's a link" email@example.com<cr><current-url><C-d> 

Ich versuche herauszufinden, wie Sie die URL der aktuell auf der Registerkarte angezeigten Seite ersetzen können.

Wenn Sie mit vim vertraut sind, entspricht dies%.

3
Machen Sie sich keine Gedanken über die Details des Mail-Befehls. Zum Beispiel,funktioniert in meinem Mapping möglicherweise nicht. Ich bin nur daran interessiert, auf die URL der Registerkarte zuzugreifen. Jon Lorusso vor 10 Jahren 0

1 Antwort auf die Frage

6
blueyed

Verwenden Sie :execute, wo Sie die Javascript-API verwenden können:

:map ,m :execute '!echo ' + buffer.URL + ' | mail -s "Subject" mail@example.com' 

Oder verwenden Sie ein Javascript-Mapping wie:

javascript <<EOF function MyFoo() { alert(buffer.URL.host); } EOF map <Leader>f -js MyFoo(); 

Unter https://github.com/blueyed/dotfiles/blob/master/pentadactylrc#L212 finden Sie eine komplexere Funktion zum Einrichten des Editors basierend auf Hostnamen.

Wie kann ich das anpassen, wenn ich die aktuelle Seite in einem anderen Browser, z. B. Chrom, öffnen möchte? Ich habe das Offensichtliche ausprobiert: '! Echo' + buffer.URL + '| ausführen Chrom 'aber es funktioniert nicht. Niels vor 8 Jahren 0
habe es mit Javascript io.run ("Chromium", [Puffer.URL]) Niels vor 8 Jahren 0
@Niels: Alternativ können Sie "! Echo" durch "! Chromium" in der obigen Anweisung ": ausführen" ersetzen. pyrocrasty vor 8 Jahren 0