Скопировать IRL вместо URL?

490
Adobe

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

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

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

    enter image description here

    а также

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

    enter image description here

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

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

Я думаю, что может быть хорошая причина использовать 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
Dmitry Alexandrov

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

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

: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 
Оно работает. Интересно, почему вы говорите, что это сломало бы короткие URL-адреса? Я предполагаю, что это не стандартное поведение, потому что есть спецификация w3.org, в которой говорится, что не-ascii URL должны быть закодированы в процентах. Adobe 9 лет назад 0
@Adobe Потому что это на самом деле ломает его. :-) Dmitry Alexandrov 9 лет назад 0
Я только что посетил youtube, и теперь он, кажется, просто отлично дергается. Adobe 9 лет назад 0
См. Редактирование поста вопроса: `yank-location` в pentadactyl делает` options.get ("yankshort"). GetKey (uri) && buffer.shortURL || uri.spec`. Adobe 9 лет назад 0
Кажется, это работает: `: map y -js dactyl.clipboardWrite (util.losslessDecodeURI (options.get (" yankshort "). GetKey (buffer.uri) && buffer.shortURL || buffer.uri.spec), true) ` Adobe 9 лет назад 0
@ Adobe Почему бы не использовать всю функцию, на самом деле. Смотрите отредактированный ответ. Dmitry Alexandrov 9 лет назад 0

Похожие вопросы