Emacs: delete whitespaces or a word

Trough some time of using Emacs I figured that even though I can alter the basic functionality, it usually doesn’t pay off much in terms of efficiency. In fact, after I did it several times, I came to regret it and undid it. This is not true all of the time, some keybindings are really uncomfortable or rarely useful, but I don’t think this is the case with how kill word works. In fact, I just now realized that: I did try the keybinding in Eclipse, but I’ve been using it with Emacs-style kebindings since forever…

Anyways, as I just said, before you are “fixing” that functionality, make sure it is really broken 🙂 I never find myself needing the kind of function you describe, and maybe here’s why:

  1. M-SPC reduces the space between words to just one space. This is what I would’ve used if the point was between the words and I wanted to delete the extra space separating the words.

  2. M-\ removes all horizontal space. This will join two words separated by space.

  3. If what you are trying to achieve is some kind of “sparse” formatting, as in:


int foo          = 42;
unsigned int bar = 43;

then there’s M-xalign-regexp to do that.

  1. I just never happen to have a) long consequent runs of whitepsace, unless it is the indentation, and in the case it is the indentation, TAB usually handles it better. b) even if there are long consequent runs of whitespace, I so rarely move the point by one character at a time, so it’s hard to think of a situation where I’d find the point surrounded by several whitespaces. Things like Artist mode, or Dot diagrams come to mind, but it doesn’t happen during code editing.

  2. Finally, if you are trying to, well, let’s say just edit an arbitrary text file and you want to add or remove horizontal space between words… Again, there’s M-xalign-regexp to do that, or you could use commands that operate on rectangles, if those are several lines at the time. Well, Emacs will even recognize the ad hoc tabs and will try to align the text such as to match the last line before the point, when you hit TAB.

Finally, if for some reason I cannot fathom 🙂 I really needed to do exactly what you describe, then I’d do it like so: kM-\BACKSPACE (it can be any other key instead of “k” – it is just right under your finger, so it’s fast to type 🙂 Or, if I’m lazy to think about it: M-SPCM-fM-bC-w – maybe sounds like a lot, but these are the commands you would be using all of the time anyway, so it doesn’t hinder you in terms of speed.

Leave a Comment