zsh viモード:最近使用したコマンドを参照する

zsh viモード:最近使用したコマンドを参照する

私は最近zshからviモードに切り替えましたが、viモードで実行する方法が見つからないemacsモードの機能があります。この機能は、すでに入力した内容から始めて、1行ずつ履歴を検索することです。たとえば、入力し、viまたはキーを押してから始まる最近のコマンドを探しますvi。 viモードも使えますか?

ベストアンサー1

Emacsモードそしてviモードキーバインディングのプリセットが異なります。すべてのウィジェットは任意のモードでバインドできます。

ここで議論されているウィジェットはhistory-beginning-search-backward(約)とhistory-beginning-search-forward)です。

モードで上下のキーにバインドするには、vicmd次の手順を実行します。

bindkey '^[[A' history-beginning-search-backward
bindkey '^[[B' history-beginning-search-forward
  • 注1:これはそのキーのデフォルト設定を上書きします。
  • 注2:^[[Aおよび^[[B端末の正しいコードではない可能性があります。

    • Ctrlv+とそのキーを押して正しいキーを見つけます。
    • または、連想配列を使用してterminfo正しいバインディングを検索します(ありがとう。スティーブン・チャジェラスこれに対する彼のコメント):

      bindkey "$terminfo[kcuu1]" history-beginning-search-backward
      bindkey "$terminfo[kcud1]" history-beginning-search-backward
      

      kcuu1そしてkcud1能力名それぞれ。マンページ()から可能な関数のリストとその名前を取得できます。連想配列は、「Cap-name」列の名前をキーとして使用します。terminfo(5)man 5 terminfoterminfo

おすすめ記事