全角文字等を含むURLの取り扱いNo.11088
でるもんたいいじま さん 22/12/17 18:50
 
でるもんた・いいじまです。

「全角文字等を含むURL」や「http(s)://… の冒頭1文字を抜いた ttp(s)://… とい
う形のURL」をうまく取り扱うためのアイデア、何かないでしょうか。

もちろん、こういったURLを強調表示の対象にするだけなら、「Email,URL,ファイル
名のカラー表示のカスタマイズ」の画面で正規表現を書くだけのことです。

ところがそうすると今度は、
(1) URLのあとに、スペースなしで日本語の文章を書いているケースが想定される
(2) 「秀丸の公式サイト(https://hide.maruo.co.jp/software/hidemaru.html)」の
ように、URLの直後に閉じ括弧が来た場合はケースバスケースで処理する必要がある
といった問題が出てきます。

それにそもそも、「ttp(s)://…」というプロトコルに対応したハンドラがデフォル
トではWindowsにインストールされていないので(自作するのはそんなに難しくない
と思いますが)、強調表示してもダブルクリック等では開けません。

…このあたり、上手いテクニックなどをご存じの方がいらっしゃいましたら、そのア
イデアをおすそ分けいただけないでしょうか。

☆ ☆ ☆

以下は背景事情です。

たとえば、下記のようなURLがあります:
  https://ja.wikipedia.org/wiki/秀丸エディタ
  https://秀丸マクロ.net/

大抵のブラウザでは、Alt+D(アドレスバーにフォーカスして全選択)→Ctrl+C の
キーストロークなどで上記のアドレスをコピーすると、ホスト名とパスがそれぞれAS
CIIにエンコードされ、
  https://ja.wikipedia.org/wiki/%E7%A7%80%E4%B8%B8%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF
  https://xn--pckzexbx21r8q9b.net/
というURLがクリップボードにコピーされます。

もちろんこれはこれで各環境間の互換性への配慮なのですが、この形のままだと、手
作業で読み書きするためのメモファイルに書いておいても、あるいは紙に印刷しても、
即座には視認できません。

一方で、アドレスバーの内容全部は選択せず、たとえば先頭の 'h' だけを抜かして
  ttps://ja.wikipedia.org/wiki/秀丸エディタ
  ttps://秀丸マクロ.net/
だけを選択した状態で Ctrl+C などを使ってコピーすると、今度はASCIIにエンコー
ドされず、上記の漢字・カタカナ表記のままクリップボードにコピーされます。

というわけで、普段からこの方法でURLのコピーをすることが多々あるので、秀丸で
扱う際にも何とか便利にならないかな、と考えて相談させていただいた次第です。

☆ ☆ ☆

以上、よろしくお願いします。

[ ]
RE:11088 全角文字等を含むURLの取り扱いNo.11092
秀丸担当 さん 22/12/19 17:25
 
半角括弧など、URLに使える文字を調整するということであれば、正規表現でするの
がいいと思います。
正規表現でカスタマイズしない場合は、いきなり閉じ括弧が来ないように都合のいい
解釈をしていました。

ttps?://…をダブルクリックでブラウザで開くようにするのは、動作環境のブラウザ
の指定のところでもできませんでした。
これはむしろURLとして認識してほしくないときに書くのではないかと思うので、認
識してしまったらいけない気がします。

[ ]
RE:11088 全角文字等を含むURLの取り扱いNo.11094
suzu さん 22/12/19 18:50
 
URLをPunycode変換させないために部分コピーするというのは、面白い方法だと思い
ました。
ただ運用としては以下の方法が素直かと思いますがどうでしょうか。

- ブラウザ側でやるなら、このような拡張機能を使う
日本語URLを日本語のままコピペできる拡張機能「Copy Unicode URLs」【レビュー】
 - 窓の杜
https://forest.watch.impress.co.jp/docs/review/1411633.html

- 秀丸側でやるなら、例にも挙げられている「秀丸マクロ.net」さんのところのマク
ロ(実際にはexe)を使う
秀まるおのホームページ(サイトー企画)−HmPunyConverter【日本語ドメイン ⇔ Pun
ycode(ピュニコード)】
https://hide.maruo.co.jp/lib/macro/hmpunyconverter.html

[ ]