How to configure zsh such that Ctrl+Backspace kills the word before point? How to achieve that Ctrl+Delete kills the word after point?
I use urxvt as terminal emulator.
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It only takes a minute to sign up.
Sign up to join this communityHow to configure zsh such that Ctrl+Backspace kills the word before point? How to achieve that Ctrl+Delete kills the word after point?
I use urxvt as terminal emulator.
I'll focus on Ctrl+Delete first.
The zsh command to delete a whole word forwards is called kill-word
. By default it is bound to Alt+D.
How to make Ctrl+Delete do it too depends on which terminal emulator you are using.
On my system, this works in xterm and Gnome Terminal:
bindkey -M emacs '^[[3;5~' kill-word
and for urxvt, you should do:
bindkey -M emacs '^[[3^' kill-word
If that doesn't work, try typing Ctrl+V Ctrl+Delete to see what the value is on your system.
You could even add both of those together to your .zshrc
, or use the output of tput kDC5
instead of hard-coding the sequence.
Ctrl+Backspace seems harder.
On my system, pressing that is the same as pressing just Backspace.
If yours is the same, I think your best option is to use Alt+Backspace or Ctrl+W instead.
'^[[3^' kill-word bindkey
and '^H' backward-kill-word
to my .zshrc. Now it works!
– student
May 7 '11 at 10:45
^H
or ^?
will work for Ctrl+Backspace
. In fact it seems such a binding is not possible. Alt+Backspace
or Ctrl+W
might be adequate replacements.
– Mikel
May 8 '11 at 3:43
On urxvt, for the deleting backwards part, I simply have in my .zshrc
the following:
bindkey '^H' backward-kill-word
and it allows me to delete the previous word with ctrl+backspace
Add the following to your ~/.zshrc
bindkey '^H' backward-kill-word
bindkey '5~' kill-word
I've got this in my .Xresources
:
URxvt.keysym.C-BackSpace: \033[33~
and that in my .zshrc
:
bindkey -M main -M viins -M vicmd '^[[33~' backward-kill-word
This kills each whitespace seperated word. Note that '^[' is the Escape character. You have to xrdb -load .Xresources
, open a terminal and then hit ^V
followed by ^BackSpace
.