zshプロンプトにすでに入力したテキストを入力して履歴を取得するにはどうすればよいですか?

zshプロンプトにすでに入力したテキストを入力して履歴を取得するにはどうすればよいですか?

Ctrlzshでは、+を使用して履歴を検索できることを知っていますr。しかし、プロンプトで直接コマンドを入力し始めて、レコードを検索する必要があることに気付くことがよくあります。Ctrl+ をクリックすると、r次の空の履歴検索プロンプトが表示されます。

過去の検索プロンプトが事前入力されていない

プロンプトにはテキストがありますが、履歴検索プロンプトにはありません。次のようにプロンプ​​トに既にあるテキストを使用して履歴検索を開始するには:

事前に入力された過去の検索プロンプト

ベストアンサー1

あなたはそれを使用することができますずっとhistory-search機能:

bindkey "^[[A" history-beginning-search-backward
bindkey "^[[B" history-beginning-search-forward

これはプロンプトに入力された内容に基づいてバインドUpし(自分のエスケープシーケンスに合わせて調整し)、前後に履歴を検索します。Down

したがって、「vim」と入力してをクリックすると、Upzshは「vim」で始まるコマンドのみを検索し、履歴を逆方向に移動します。

zsh 履歴で目的のコマンドを選択した後は、次を使用することもできます。履歴検索が終了しました関数(通常は存在)は、次のように各行の末尾に/usr/share/zsh/functions/Zle/追加されます。-end

autoload -U history-search-end
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "^[[A" history-beginning-search-backward-end
bindkey "^[[B" history-beginning-search-forward-end

おすすめ記事