zshにvicmdモードに切り替えるコマンドはありますか?

zshにvicmdモードに切り替えるコマンドはありますか?

検索履歴にaltマッピングしましたが、ほとんどの場合、カーソルを特定の位置に移動していくつかの変更を行う必要があるため、履歴エントリが呼び出されるたびにvicmdを自動的に切り替えたいと思います。kaltj

これは .zshrc の現在の設定です。上記を達成するにはどうすればよいですか?

    bindkey '^[k' up-line-or-history
    bindkey '^[j' down-line-or-history

ベストアンサー1

Esc後で必要な操作を実行するにはAlt+jまたは+を押すだけで済みますが、1つのキーストロークを保存するには、ファイルに次のものを追加すると便利です。Altk.zshrc

vi-cmd-up-line-history() { 
  zle vi-cmd-mode
  zle up-line-or-history 
} 
zle -N vi-cmd-up-line-history 
bindkey -M vicmd '^[k' vi-cmd-up-line-history
bindkey -M viins '^[k' vi-cmd-up-line-history

vi-cmd-down-line-history() { 
  zle vi-cmd-mode
  zle down-line-or-history 
} 
zle -N vi-cmd-down-line-history
bindkey -M vicmd '^[j' vi-cmd-down-line-history
bindkey -M viins '^[j' vi-cmd-down-line-history

それがすることは、vi-cmd-down-line-historyandという名前の新しいウィジェットを+と+vi-cmd-up-line-historyにバインドすることです。このウィジェットはモードを次に変更します。AltjAltkガイドラインウィジェットを呼び出してから、vi-cmd-modeおよびdown-line-or-historyをトリガーしますup-line-or-history

おすすめ記事