私の最後に次のコードを追加しました.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)例えば。
たぶん私がこのコマンドを間違った場所に置いたのではないでしょうか?
どんな助けでも大変感謝します!
答え1
zshはVISUAL
埋め込み文字列に設定するときにViを使用します。vi
キーマップ( 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
およびを使用できます^
。$