.zshrc
の最後に次のコードを追加しました。
export VISUAL=vim
autoload edit-command-line; zle -N edit-command-line
bindkey -M vicmd v edit-command-line
シェルを再起動すると、完全に機能しますが、以前のすべてのキーバインディングが機能しなくなります。
たとえば、履歴を検索できず(CTRL-R)、コマンドラインで移動できません(CTRL-A/E)。
たぶん私はこれらのコマンドを間違った場所に配置しましたか?
どんな助けでも、とても感謝しています!
VISUAL
をvi
を含む文字列に設定すると、zshはVi keymaps (vicmd
、viins
、…)を使用します。 Viスタイルのデフォルトのキーバインディング。それ以外の場合、zshはEmacsスタイルのデフォルトのキーバインディングでemacs
キーマップを使用します。
シェルでEmacsスタイルのコマンドライン編集を使用したいが、お気に入りのエディターとしてVimを使用したい場合は、 bindkey -e
あなたの.zshrc
。
Viスタイルのコマンドライン編集を使用したいが、Emacsスタイルのデフォルトからのいくつかのバインディングがある場合は、これらのバインディングを自分で定義する必要があります。 ^R
Emacsモードで実行 history-incremental-search-backward
これはViモードではバインドされていません。 Viコマンドモードで検索するためのデフォルトのキーバインディングは/
にとって - vi-history-search-backward
および?
にとって - vi-history-search-forward
。コマンドラインの最初または最後に移動するには、0
、^
および$
いつものように。