readline: unix-word-rubout ですが、逆方向に実行することは可能ですか?

readline: unix-word-rubout ですが、逆方向に実行することは可能ですか?

.inputrcを逆順に実行するように設定しようとしていますunix-word-ruboutが、現時点では失敗しています。にマッピングし
ました。M-w.inputrc

これは動作しません:

"\eu": universal-argument
"\ew":  "\eu-1\C-w"

これも当てはまりません:

"\ew":  "\e-1\C-w"

シェルで を押して対話的に実行しても機能しませんM--C-wつまり、カーソルの左側にある単語が削除され続けます。

C-wPS 他にも kill/rubout readline コマンドがあることは知っていますが、スペースを区切り文字として使用して、逆順に単語を削除する動作が本当に欲しいです。

答え1

簡単に言うと、次の行を に追加します~/.inputrc

"\ew": kill-region
"\ea": '\e \C-] \ew'

場所wa文字は自由に変更できます。

仕組み

readlineコマンドにキーシーケンスを割り当ててみましょうkill-region。例えばAltw

"\ew": kill-region

次に、次のマクロを別のシーケンスに割り当ててみましょうAlta

"\ea": '\e \C-] \ew'

次のアクションを実行します。

\e<SPACE>:

カーソルがある場所にマークを設定する

\C-]<SPACE>:

スペースを検索してカーソルをそこに移動

\ew:

マークとカーソルの間の領域を削除する

関連情報