Bashおよび/またはZsh:特定の数の文字を移動するバインディングを生成するためにVi挿入モードをカスタマイズできますか?

Bashおよび/またはZsh:特定の数の文字を移動するバインディングを生成するためにVi挿入モードをカスタマイズできますか?

私のVim設定は少しユニークです。 Shift+H と Shift+L をバインドし、それぞれ左に 7 文字、右に 7 文字を移動しました。これにより、脳はキーボードの繰り返し時間をより簡単に設定し、できるだけ早くカーソルを目的の位置にすばやく移動できます。

とにかく、単一のキーをこれらの操作(7文字の移動)にマッピングすることが可能かどうか疑問に思い、シェル自体にパッチを適用する必要があるかもしれません。しかし、キーバインディングシステムはこれを許可することができますか?

H共通の文字と文字を送信し続けるには端末自体が必要なので、他のレベル(端末エミュレータなど)で変換やマッピングを実行することは意味がないと思いますL

答え1

CURSORzshzle(1)文書によると、ZSHに移動できます。

rm ~/.zcompdump
bindkey -v
autoload -U compinit
compinit
function leftsevent {
    CURSOR=$(( CURSOR - 7 ))
}
function rightsaidfred {
    CURSOR=$(( CURSOR + 7 ))
}
zle -N leftsevent
zle -N rightsaidfred
bindkey H leftsevent
bindkey L rightsaidfred

(1行入力に境界チェックを使用することは必須ではないようですが、< 0おそらく> $#BUFFER良いことでしょう...)

関連情報