Kopieren Sie eine IRL anstelle einer URL?

674
Adobe

IRL ist eine UTF-8-codierte Seitenadresse, im Gegensatz dazu eine URL, die nur eine Teilmenge von ASCII zulässt und alles, was darüber hinausgeht, in Prozent codiert ist.

In Pentadactyl IRL erscheint,

  • in einer Adressleiste:

    Kopieren Sie eine IRL anstelle einer URL?

    und

  • als "Referer" in g Ctrl-g:

    Kopieren Sie eine IRL anstelle einer URL?

(Besuchen Sie zum Beispiel diese Seite: http://ru.wikipedia.org/wiki/Сусанин,_Иван )

Wenn Sie jedoch eine Adresse mit yeiner URL kopieren, wird anstelle einer IRL kopiert. Firefox hat eine Option, mit network.standard-url.escape-utf8der Benutzer IRL anstelle einer URL in eine Adressleiste kopieren können. Dies hat jedoch keinen Einfluss auf das yVerhalten von Pentadactyl .

Ich denke, dass es einen guten Grund gibt, URL anstelle von IRL zu verwenden, aber ich möchte IRL kopieren.

Eine Möglichkeit, dies zu tun, besteht darin, die Adresse in der Adresszeile auszuwählen und zu kopieren. Aber es ist langweilig.

Gibt es eine Möglichkeit, eine IRL anstelle einer URL mit einer Tastenkombination in Pentadactyl zu kopieren?

Bearbeiten :

Hier ist ein Code, an yank-locationden gebunden ist y:

mappings.add([modes.NORMAL], ["y", "<yank-location>"], "Yank current location to the clipboard", function () { let { doc, uri } = buffer; if (uri instanceof Ci.nsIURL) uri.query = uri.query.replace(/(?:^|&)utm_[^&]+/g, "") .replace(/^&/, "");  let url = options.get("yankshort").getKey(uri) && buffer.shortURL || uri.spec; dactyl.clipboardWrite(url, true); }); 
1

1 Antwort auf die Frage

1
Dmitry Alexandrov

Interessante Idee. Gibt es einen Grund, warum es kein defualtes Verhalten ist, frage ich mich.

Eine grobe Vermutung:

:map y -js dactyl.clipboardWrite(util.losslessDecodeURI(buffer.uri.spec), true) 

Beachten Sie jedoch, dass es das Zerreißen kurzer URIs (z. B. auf YouTube) und wahrscheinlich etwas anderes brechen würde.

Oder Sie könnten einen vollständigen Code für adapt yaus commons/modules/buffer.jsm:

com yanklocation -description "Yank current location to the clipboard"  \ -js <<_EOF let { doc, uri } = buffer; if (uri instanceof Ci.nsIURL) uri.query = uri.query.replace(/(?:^|&)utm_[^&]+/g, "") .replace(/^&/, "");  let url = options.get("yankshort").getKey(uri)  && buffer.shortURL  || uri.spec; dactyl.clipboardWrite(util.losslessDecodeURI(url), true); _EOF map y -ex yanklocation 
Es klappt. Ich frage mich, warum sagen Sie, dass es das Zerreißen kurzer URLs bricht? Ich denke, es handelt sich nicht um ein Standardverhalten, da es w3.org-Spezifikationen gibt, die besagen, dass nicht-ASCII-URLs in Prozent codiert sein sollten. Adobe vor 9 Jahren 0
@Adobe Weil es tatsächlich kaputt geht. :-) Dmitry Alexandrov vor 9 Jahren 0
Ich habe gerade youtube besucht und ow.ly und es scheint gut zu reißen. Adobe vor 9 Jahren 0
Siehe die Bearbeitung des Fragepostens: pentadactyls `yank-location` macht` options.get ("yankshort"). GetKey (uri) && buffer.shortURL || uri.spec`. Adobe vor 9 Jahren 0
Das scheint zu funktionieren: `: map y -js dactyl.clipboardWrite (util.losslessDecodeURI (options.get (" yankshort "). GetKey (buffer.uri) && buffer.shortURL || buffer.uri.spec), true ` Adobe vor 9 Jahren 0
@Adobe Warum benutzt du eigentlich nicht die ganze Funktion? Siehe bearbeitete Antwort. Dmitry Alexandrov vor 9 Jahren 0