zsh補完をBash補完のように動作させるにはどうすればよいですか?


12

私はzshに切り替えましたが、完了が嫌いです。タブを押すと20個のファイルがあり、それぞれに共有プレフィックスが付いている場合、zshは最初のファイルを完全に完成させ、タブを押すたびにリストを続行します。終わり近くにしたい場合は、Tabキーを何度も押す必要があります。

bashでは、これは単純でした。タブを押すと、プレフィックスが表示されます。入力を続けた場合(およびタブを押した場合)、bashは確実な範囲で完了します。この動作の方がはるかに直感的であると思いますが、bashよりもzshの他の機能の方を好みます。

このスタイルの補完を取得する方法はありますか?Googleはを提案setopt bash_autolistしましたが、これは私には効果がありませんでした(そして、私のシェルを起動したときにエラーメッセージが出力されませんでした)。

ありがとう。

回答:


7

試してください:

setopt autolist
unsetopt menucomplete

まったく同じように動作しますが、まったく同じではありませんが、慣れていることは間違いありません。どうもありがとう!
nsm

8

あなたが望むのはおそらくこれです:

setopt noautomenu

1
(10年後)受け入れられた回答には、(見かけ上の)影響はありませんでした。これはまさに私が欲しかったものであり、OPが求めていたようです。
Jer

1

次のように.zshrcの「メニュー選択」オプションを使用する場合、別のオプションがあります。

autoload -U compinit
compinit
zstyle ':completion:*:*:*:*:*' menu select

矢印キーで結果をナビゲートできるようになります。「プレフィックスが共有された20ファイル」の例を見てみましょう。

  • 最初に[TAB]を押すと、zshは可能な限り完了し、可能性のリストを表示します
  • その後、bashで行うように完了することができます(追加の文字を入力して、goto 0)
  • または、[TAB]を再入力すると、シェルプロンプトの下のメニューで強調表示される選択肢が表示されます。ボーナス、矢印キーで可能性をナビゲートできます

最後に、最後の可能性に到達するには:

  • Bashでは、せいぜい[TAB]を押し、次に追加の文字、次に[TAB]を押します(多分それ以上)
  • Zshでは、[TAB]を押し、次に[TAB]を押して(メニューに入る)、「<-」(左矢印キー)を押して最後の要素に移動します

この場合、どちらも3つのキーストロークです。残りは主に好みの問題です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.