12

I'd like Ctrl-Backspace to delete the current word in vim insert mode. From within xterm I can pull this off via

:inoremap <C-H> <C-W>

but in gnome-terminal I cannot figure out a way to make it happen.

When in vim insert mode, if I type control-v and then press backspace, I get ^H in xterm, and ^? in gnome-terminal. Unfortunately,

:inoremap <C-?> <C-W>

doesn't do the trick in gnome-terminal; control-backspace just erases a single character no matter what.

Regarding ASCII codes:

Gnome-terminal lets you change the backspace character under Edit -> Profile Preferences -> Compatibility. Unfortunately, no option works, as far as I can tell: whatever character I apply to Backspace via the settings, if I try mapping the character itself, like

:inoremap <C-H> <C-W>

then regular backspace and control-backspace both erase an entire word; and if I try mapping control plus that character, like

:inoremap <C-^H> <C-W>

then regular backspace and control-backspace just erase a single character.

Michael Gundlach
  • 106,555
  • 11
  • 37
  • 41

1 Answers1

12

gnome-terminal's libvte would need to be patched.

libvte already has several options to map backspace, none of which distinguish Ctrl-backspace. It needs an option that does, maybe one that follows the behaviour of the linux console (^? for backspace, ^H for Ctrl-backspace). See this gnome bug.


2015 update: this was fixed in 23c7cd0f99d504cbab06d4c27254d4f3e2807ba8.

libvte 0.41.90, 0.40.3 and newer have the fix.

Tobu
  • 24,771
  • 4
  • 91
  • 98
  • How can we get this patch working? What steps would I need to take (to recompile libvte and gnome-terminal)? – Steven Lu Feb 11 '12 at 00:40
  • @StevenLu Forward-port the patch, expose the configuration to gnome-term (you could edit the gconf/dconf directly from gconf-editor though), make sure your recompiled libvte is in the load path. – Tobu Feb 11 '12 at 01:44
  • 2
    Looks like this patch got some attention last month and might be released soon. Can't wait. I need ctrl-backspace in console vim for sanity. – trusktr Oct 13 '13 at 15:17