端末(urxvt、zsh)にURLを貼り付けることができず、一部の文字がエスケープされます。

端末(urxvt、zsh)にURLを貼り付けることができず、一部の文字がエスケープされます。

ここ数か月間、ChromeからURLをコピーしてからChromeでShift-Insertを押すと、貼り付けたurxvtURLがエスケープされることがわかりました。

たとえば、元のURLは次のようになります。

http://example.com/?a=c

貼り付けた内容は次のとおりです。

http://example.com/\?a\=c

ただし、Web ブラウザや に貼り付ける場合は、vim抜けません。

アーチLinuxを使用していますurxvt、、、zshoh-my-zsh.

ベストアンサー1

これは「url-quote-magic」というZシェルモジュール行動中。シェルのメタ文字と引用を完全に無視しても、目的の結果を得ることができます。 ZLEは、引用符のない単語がURL(スキーマの前に来る)のように見える場合を検出し、残りの単語内で文字の自己挿入がどのように行われるかを変更します。

貼り付けジョブのみを入力した場合

http://example.com/?a=c
コマンドラインエディタに移動すると、次のコマンドが表示されます。走るときファイル名の拡張を試み、実行失敗ファイル名が一致しないためです。 Vivek Vermaの有名な例例:

~$mpvhttps://www.youtube.com/watch?v=HcgJRQWxKnw
zsh:一致するものはありません。https://www.youtube.com/watch?v=HcgJRQWxKnw
~$  

?覚えておいてください:Zシェルには、および[;だけでなく、(コマンド名の検索)や(数字の範囲)、、、などの多くのファイル名拡張子文字が]あります。これには Korn シェル互換性メカニズムも含まれません。より*=<>~^#zshexpnマニュアルページにはかなり長い詳細があります。

url-quote-magicはこれが引用符でないことを確認し、http:パターンプレフィックスを識別し、ファイル名拡張子を呼び出さないようにおよびをおよびに?変更します。=\?\=

だからあなたじゃないなら実際に欲しい、何らかの理由で貼り付けるか入力するURL(一重引用符を囲まないでください)は、すべてのファイル名拡張子の対象となります。 URLでシェルメタ文字の自動引用が自動的に行われたとはっきりと考えていたので嬉しいです。 ☺

おすすめ記事