1

IRL - это адрес страницы в кодировке UTF-8, в отличие от URL-адреса, который допускает только подмножество ascii и все, кроме этого, в процентном кодировании.

В пентадактиле IRL появляется,

  • в адресной строке:

    а также

  • в качестве "рефери" в g Ctrl-g:

(например, посетите эту страницу: http://ru.wikipedia.org/wiki/Сусанин,_Иван)

Однако, когда кто-то копирует адрес с y, вместо IRL копируется URL. Firefox имеет опцию network.standard-url.escape-utf8 которая позволяет пользователям копировать IRL вместо URL в адресной строке. Но это не влияет у поведения pentadactyl в.

Я думаю, что может быть хорошая причина использовать URL вместо IRL, но я хочу скопировать IRL.

Один из способов сделать это - это выбрать адрес в адресной строке и скопировать его. Но это утомительно.

Есть ли способ скопировать IRL вместо URL с помощью сочетания клавиш в пентадактиле?

Редактировать:

Вот код yank-location который связан с 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

1

Интересная идея. Интересно, есть ли причина, по которой это не является поведением по умолчанию.

Грубое предположение:

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

Но учтите, что это сломало бы короткие URI (например, на YouTube) и, возможно, что-то еще.

Или вы можете адаптировать полный код для y из 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .