私は最近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 terminfo
terminfo