.inputrc
を逆順に実行するように設定しようとしていますunix-word-rubout
が、現時点では失敗しています。にマッピングし
ました。M-w
.inputrc
これは動作しません:
"\eu": universal-argument
"\ew": "\eu-1\C-w"
これも当てはまりません:
"\ew": "\e-1\C-w"
シェルで を押して対話的に実行しても機能しませんM--
。C-w
つまり、カーソルの左側にある単語が削除され続けます。
C-w
PS 他にも kill/rubout readline コマンドがあることは知っていますが、スペースを区切り文字として使用して、逆順に単語を削除する動作が本当に欲しいです。
答え1
簡単に言うと、次の行を に追加します~/.inputrc
。
"\ew": kill-region
"\ea": '\e \C-] \ew'
場所w
とa
文字は自由に変更できます。
仕組み
readlineコマンドにキーシーケンスを割り当ててみましょうkill-region
。例えばAlt、w
"\ew": kill-region
次に、次のマクロを別のシーケンスに割り当ててみましょうAlt。a
"\ea": '\e \C-] \ew'
次のアクションを実行します。
\e<SPACE>:
カーソルがある場所にマークを設定する
\C-]<SPACE>:
スペースを検索してカーソルをそこに移動
\ew:
マークとカーソルの間の領域を削除する