31

I'm trying to bind the command usualy binded to ^W with ctrl+backspace.

I have two problem here, one for each parameter of the bindkey command:

  • what is string to mean the ctrl+backspace
  • what is the command to delete the previous word
lolesque
  • 10,693
  • 5
  • 42
  • 42
psychoslave
  • 2,783
  • 3
  • 27
  • 44
  • 1
    While some control key combinations have straightforward ASCII equivalents (Control-H sending ASCII 0x08, for example), control-backspace does not. Your terminal emulator must be configured to generate a string, much like it does for a function key or arrow key. – chepner Jan 21 '14 at 20:05

2 Answers2

47

One may use bindkey '^H' backward-kill-word.

Note that, on old versions of GNOME terminal, it won't work; see How do I get Ctrl-Backspace to delete a word in vim within gnome-terminal? and Bug 420039 - VTE doesn't distinguish between backspace and control-backspace.
As reported by thorbjornwolf in his comment, commit 23c7cd0f fixed it.

apaderno
  • 28,547
  • 16
  • 75
  • 90
psychoslave
  • 2,783
  • 3
  • 27
  • 44
6

As I pointed out here there is a chance that the keystrokes are different in some systems.

If the output of showkey -a is:

  • Ctrl+Backspace is ^?

then you should add the following line in your ~/.zshrc file:

bindkey '^?' backward-kill-word
G. Sapph
  • 61
  • 1
  • 4