zsh 引用符をバックスペースする方法

zsh 引用符をバックスペースする方法

zsh でバックスペースを押して引用符間を移動するにはどうすればよいですか?

次のように入力して Enter キーを押した後、引用符の先頭でleftまたは を押しても何も起こりません。backspace'

$ echo '                  
quote> 

引用前の部分を再編集する方法として私が知っている唯一の方法は を押すことですcontrol cが、あまり便利ではないと思います。

答え1

ウィジェットを使用する場合push-line-or-editは、完全なコマンドを編集できます。

プッシュラインまたは編集 トップレベル (PS1) プロンプトでは、push-line と同等です。セカンダリ (PS2) プロンプトでは、現在の複数行構造全体をエディター バッファーに移動します。後者は、push-input の後に get-line を実行することと同等です。

このウィジェットはデフォルトではどのキーにもバインドされていないので、

bindkey "^[q" push-line-or-edit

にバインドします。(このキーの組み合わせは、emacs キーバインディングを使用するときESC-qに にバインドされるため、定期的に を使用する場合は別のキーの組み合わせを選択してください。)push-linepush-line

小さなデモンストレーション(■はカーソルを示します):

$ bindkey "^[q" 行または編集をプッシュ
$エコー'[入力]
[ 引用 ] ■[ESC-q]
$エコー'[上矢印]
$ ■エコー '

関連情報