web-dev-qa-db-ja.com

zsh kill Ctrl + Backspace、Ctrl + Delete

このようにzshを設定する方法 Ctrl+Backspace ポイントの前に言葉を殺す?それを達成する方法 Ctrl+Delete ポイントの後に言葉を殺しますか?

端末エミュレータとしてurxvtを使用しています。

11
student

私は焦点を当てます Ctrl+Delete 最初。

Word全体を削除するzshコマンドはkill-Wordと呼ばれます。デフォルトでは、 Alt+D

作り方 Ctrl+Delete 使用しているターミナルエミュレータにも依存します。

私のシステムでは、これはxtermとGnomeターミナルで機能します。

bindkey -M emacs '^[[3;5~' kill-Word

urxvtの場合は、次のことを行う必要があります。

bindkey -M emacs '^[[3^' kill-Word

それでも問題が解決しない場合は、入力してみてください Ctrl+VCtrl+Delete システムの値を確認します。

これらの両方を.zshrcに追加するか、シーケンスをハードコーディングする代わりにtput kDC5の出力を使用することもできます。

Ctrl+Backspace 難しいようです。

私のシステムでは、それを押すことはちょうど押すことと同じです Backspace

あなたのものが同じなら、私はあなたの最善の選択肢は使用することだと思います Alt+Backspace または Ctrl+W 代わりに。

11
Mikel

Urxvtでは、逆方向の部分を削除するために、単に.zshrc 以下:

bindkey '^H' backward-kill-Word

ctrl +バックスペースで前の単語を削除できます

3
benterris

.Xresourcesにこれがあります:

URxvt.keysym.C-BackSpace:       \033[33~

そしてそれは私の.zshrcにあります:

bindkey -M main -M viins -M vicmd   '^[[33~'    backward-kill-Word

これにより、空白で区切られた各Wordが削除されます。 '^ ['はエスケープ文字であることに注意してください。 xrdb -load .Xresources、ターミナルを開き、^Vの後に^BackSpaceを押す必要があります。

2
jrk