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
thenを実行することですcompinstall
。これにより、デフォルトウィザードを使用してzsh
機能をカスタマイズできます。いくつかの質問をした~/.zshrc
後、オプションに慣れたら、カスタマイズできる簡単な質問を作成します。~/.zshrc
特定の行動を維持したい場合は、参照できるように最初に行動のコピーを作成してください。