1

ZSH には、私が気に入っている非常に優れた機能があります。! を入力すると、文字の後に単語 + TAB キーが続くと、シェルは、単語の後に ! が続く最後のコマンドをプルアップします。そしてそれを展開します。例えば:

% !ssh

次に、予想される動作は、上矢印キーと下矢印キーを使用して履歴を循環し、範囲をsshで始まるコマンドに限定することです。現在、これは Mac OS X で動作しますが、何らかの理由で Linux ボックスでは動作しません。私のバインドキーは、Linux インストールで次のようになります。

 user@host ⮀ ~ ⮀ bindkey | fgrep history
"^N" down-line-or-history
"^O" accept-line-and-down-history
"^P" up-line-or-history
"^R" history-incremental-search-backward
"^S" history-incremental-search-forward
"^X^N" infer-next-history
"^Xr" history-incremental-search-backward
"^Xs" history-incremental-search-forward
"^[ " expand-history
"^[!" expand-history
"^[," _history-complete-newer
"^[/" _history-complete-older
"^[<" beginning-of-buffer-or-history
"^[>" end-of-buffer-or-history
"^[N" history-search-forward
"^[OA" up-line-or-history
"^[OB" down-line-or-history
"^[P" history-search-backward
"^[[5~" up-line-or-history
"^[[6~" down-line-or-history
"^[n" history-search-forward
"^[p" history-search-backward

期待される動作を得るために変更しなければならないバインドキーは何ですか? すでにそれらのいくつかを変更しましたが、結果は望ましいものではありません。誰かが私を助けてくれたらうれしいです。インストールした zsh のバージョンは 5.0.2 です。

2013 年 5 月 30 日木曜日 10:27:49 CEST に編集:

@Franciscoそれは働いた。必要なオプションが up-line-or-search と down-line-or-search であることを知りませんでした。だから私は次のようにしました:

1)どのキーが割り当てられているかを確認しました:

⮀ ~/.dotfiles ⮀ ⭠ ihacku ⮀ bindkey | fgrep search 
"^R" history-incremental-search-backward
"^S" history-incremental-search-forward
"^Xr" history-incremental-search-backward
"^Xs" history-incremental-search-forward
"^[N" history-search-forward
"^[OA" up-line-or-search
"^[OB" down-line-or-search
"^[P" history-search-backward
"^[[A" up-line-or-search
"^[[B" down-line-or-search
"^[n" history-search-forward
"^[p" history-search-backward

2)次に、Ctrl + v上向き矢印、下向き矢印の順に入力すると、次のようになりました。

⮀ ~/.dotfiles ⮀ ⭠ ihacku ⮀ ^[OA
⮀ ~/.dotfiles ⮀ ⭠ ihacku ⮀ ^[OB

3) あなたのコードを .zshrc に追加しました:

bindkey '^[OA' up-line-or-search                                                
bindkey '^[OB' down-line-or-search

注:oh-my-zsh.shがロードされた後にこれらの行を追加しました。

5) .zsh を入手しました:

. ~/.zshrc 

そして最後に、期待される結果が得られます。ご助力ありがとうございます。

4

1 に答える 1