Mac – How to do select column then do editing in GNU Emacs


I've been using ViM, TextMate, and GNU Emacs for years.

For example here is the text I want to edit


And here is the text result I want to have

bar foo
bar foo
bar foo

When I'm on Vim, I can do "Ctrl v" on the very first line and first column, then press "2 j", then press "i", then type "bar", done.

When I'm on Textmate, I can press "Apple Command Option" both while selecting down (by my mouse), then type "bar", done.

But when I'm on GNU Emacs 23.1, I don't know how to do it. :((

I searched EmacsWiki and googling around but didn't get the solution. Please guide me if you know my solution. Would be grateful for that.

Best Answer

Two options come to mind. The first is rectangles (as mentioned in another answer). The explicit directions for that are:

  1. goto first line, first column
  2. C-SPC
  3. goto last line (first column)
  4. C-x r t bar SPC RET

Another option, which provides very nice rectangle/column editing commands is CUA mode. Here's a blog post (disclosure: my blog) that describes how to use it. To see the power of CUA mode it's totally worth watching this three minute video.

I integrate CUA mode with the following (because I prefer not to have transient mark mode):

(setq cua-enable-cua-keys nil)
(setq cua-highlight-region-shift-only t) ;; no transient mark mode
(setq cua-toggle-set-mark nil) ;; original set-mark behavior, i.e. no transient-mark-mode
Related Question