setopt CORRECT
変更を完全にオフにしたり、変更を制限せず(正しいコマンドのみ)、Zshに現在のディレクトリに属していないファイルのパラメータ変更を停止させることはできますか?
たとえば、CORRECT_ALL
次のように設定すると、setopt
これが発生します。
gris@arefiev: ~% cd srcc
change srcc to src-nyae? n
これまではとても良いです(引数はファイルでcd
なければなりません)。しかし、
gris@arefiev: ~% man zile
change zile to .zile-nyae?
何?zile
optionsで呼び出される時間が変更されることを願っています.zile
。また、ホストパラメータ、最初のパラメータなどを変更しようとしますが、これは本当に迷惑です。man
-C
ssh
sudo
影響を受ける各コマンドに松葉杖(設定など)を使用する必要がありますalias man='nocorrect man'
が、明らかにこれが最善の解決策ではありません。私もそれが好きではなく、ただ代わりにCORRECT
杖プラスを好む。CORRECT_ALL
CORRECT
Zshはzsh 4.3.17 (x86_64-unknown-linux-gnu)
Debianシードです。
修正する:これは私のものです。.zshrc
http://pastebin.com/67mykgRv
答え1
Zshには多くの完成がありますが、修正は少ないです。完成は役に立ちますが、修正は役に立たないコマンドがたくさんあります。たとえば、引数の補完mkdir
(既存のディレクトリ内にディレクトリを作成します)は便利ですが、変更されません。このcorrect_all
オプションはどこでも修正を有効にするので、非常に面倒です。残念ながら、修正は正しい入力セットが提供されている場合にのみ可能です。
以下を設定して、特定のコマンドに対する修正をカスタマイズできます。corrections
ラベルを貼り、修正するかどうかをカスタマイズします。_correct
~の一部matcher-list
または。この設定は以下に関連しています。zstyle
内蔵。
答え2
私が見るにはディストリビューションに何か抜けたようです。ほとんどのZSH実装には、コマンドとパラメータの場所に応じてインテリジェントに完了する複数の事前設定されたZSH完了設定が付属しています。たとえば、私のシステムではzsh 完了パック。正しくインストールされロードされると、ファイルを使用するのman
ではなく、マニュアルページにあるものだけを使用して実行されます。ssh
ホスト名のみを使用してくださいssh -l
。これはシステムユーザー名を使用して実行されますが、ssh -l caleb
その後は次のように実行されます。ホスト名など
利用可能なzshパッケージとデフォルト設定が正しくロードされていることを確認する必要があります。質問にリストされているような標準コマンドに対して複数の手動オーバーライドを設定する必要はありません。