
ZSH の自動補完に問題があり、それを解消するための適切なキーワードが見つかりません。
例えば、次のようなファイルの場合
$ ls
Accelion, titi toto tata
書きたいこと:
$ ls cc<TAB>
そして_を得るいいえ_completion の代わりにAccelion
.
現在設定されているオプションは次のとおりです。
$ set -o | grep " on"
alwaystoend on
autocd on
autonamedirs on
autopushd on
nobeep on
cdablevars on
extendedhistory on
noflowcontrol on
nohistbeep on
histexpiredupsfirst on
histignoredups on
histignorespace on
histverify on
incappendhistory on
interactive on
interactivecomments on
nolistambiguous on
nolistbeep on
longlistjobs on
nonomatch on
promptsubst on
pushdignoredups on
shinstdin on
zle
オプション(およびダンプ方法)などの詳細情報が必要な場合はお知らせください。
編集:翻訳4.3.17(x86_64-redhat-linux-gnu)
答え1
使用しているのバージョンについては言及されていませんzsh
。バージョン 4 であると想定しています。
シェルzsh
は、おそらく慣れているように、真の補完ではなく、まずマッチングを実行します。この動作は、補完の順序付けや、オプションでカスタマイズすることでカスタマイズできます。その方法については、このガイド。
表示されている動作は、大文字と小文字を区別しない一致である可能性があります。
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
ガイドをあまり深く読み込まずにこの動作を修正する最も簡単な方法は、上記と同様の行を見つけてコメントアウトするか、 を実行してautoload -Uz compinstall
から を実行することですcompinstall
。これにより、 の動作をカスタマイズするための基本的なウィザードが案内されます。いくつかの質問が表示され、オプションに慣れてきたらカスタマイズできるzsh
シンプルな が作成されます。保持したい動作がある場合に参照できるように、まず をコピーしてください。~/.zshrc
~/.zshrc