Salin IRL bukan URL?

1

IRL adalah alamat halaman yang disandikan UTF-8, dalam URL kontras yang hanya memungkinkan subset dari ascii dan segala sesuatu di luar itu dikodekan dengan persentase.

Dalam pentadactyl IRL muncul,

  • di bilah alamat:

    enter image description here

    dan

  • sebagai "Perujuk" di g Ctrl-g :

    enter image description here

(misalnya kunjungi halaman ini: http://ru.wikipedia.org/wiki/Сусанин,_Иван )

Namun ketika seseorang menyalin alamat dengan y URL disalin bukan IRL. Firefox memiliki opsi network.standard-url.escape-utf8 yang memungkinkan pengguna menyalin IRL alih-alih URL di bilah alamat. Tapi ini tidak mempengaruhi pentadaktil y tingkah laku.

Saya pikir mungkin ada alasan yang baik untuk menggunakan URL daripada IRL, tetapi saya ingin menyalin IRL.

Salah satu cara untuk melakukannya - adalah memilih alamat di baris alamat, dan menyalinnya. Tapi itu membosankan.

Apakah ada cara untuk menyalin IRL daripada URL dengan kunci pintas di pentadactyl?

Edit :

Berikut kode yank-location yang diikat 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);
    });
Adobe
sumber

Jawaban:

1

Ide yang menarik. Apakah ada alasan mengapa itu bukan perilaku standar, saya heran.

Tebakan kasar:

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

Tetapi perhatikan, bahwa itu akan merusak URI singkat (mis. Di YouTube) dan mungkin sesuatu yang lain.

Atau Anda dapat mengadaptasi kode lengkap untuk y dari 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
Dmitry Alexandrov
sumber
Berhasil. Saya ingin tahu mengapa Anda mengatakan itu akan merusak URL singkat? Saya kira itu bukan perilaku default, karena ada spec w3.org yang mengatakan URL non-ascii harus persentase dikodekan.
Adobe
@ Adobe Karena itu benar-benar merusaknya. :-)
Dmitry Alexandrov
Saya baru saja mengunjungi youtube, dan ow.ly dan tampaknya menarik dengan baik.
Adobe
Lihat hasil edit posting pertanyaan: pentadactyl yank-location tidak options.get("yankshort").getKey(uri) && buffer.shortURL || uri.spec.
Adobe
Ini sepertinya berfungsi: :map y -js dactyl.clipboardWrite(util.losslessDecodeURI(options.get("yankshort").getKey(buffer.uri) && buffer.shortURL || buffer.uri.spec), true)
Adobe