![zsh で ? と [] のグロブを完全に無効にする](https://rvso.com/image/1638102/zsh%20%E3%81%A7%20%3F%20%E3%81%A8%20%5B%5D%20%E3%81%AE%E3%82%B0%E3%83%AD%E3%83%96%E3%82%92%E5%AE%8C%E5%85%A8%E3%81%AB%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B.png)
zsh は bash にいくつかの追加のグロブ ロジックを追加します。
$ zsh
$ echo foo[]
zsh: no matches found: foo[]
$ echo bar?
zsh: no matches found: bar?
$ bash
$ echo f[]
f[]
$ echo bar?
bar?
どちらも私にとっては役に立たず、URL のコピーや入力などが面倒になります。
これを完全に無効にしたいのですが、まだその方法が見つかりません。
不完全な解決策がいくつかあります。
setopt NO_NOMATCH
これは、あなたのglobが誤ってする一致、例えば:
$ echo README.m?
README.md
- 引用符を追加する
これは機能しますが、オンラインでスニペットをコピーして貼り付ける場合には機能せず、入力時に覚えておく必要のある余分な手順が追加されます。
url-quote-magic
自動的に脱出するために使用する
これはCLI/履歴を汚染し、貼り付けにのみ機能します
答え1
?
Bashでもワイルドカードです違いは、Zsh では一致に失敗するとエラーが発生するのに対し、Bash では何も表示されずに無視されるため発生します。
Zsh で Bash の動作を実現するには、~/.zshrc
ファイルに以下を追加します。
unsetopt NOMATCH
しかし、私は実際にお勧めしますないオフにしてください。エラーを黙って無視するのは良いことではなく、破壊的な操作を実行するときには危険になることもあります。
このシェルオプションの詳細については、http://zsh.sourceforge.net/Doc/Release/Options.html