Łukasz Lew Łukasz Lew - 5 months ago 33
C++ Question

How can I refactor C++ source code using emacs?

I'm interested mostly in C++ and method/class name/signature automatic changes.


I do this a lot, so I'm axiously awaiting other replies too.

The only tricks I know are really basic. Here are my best friends in Emacs when refactoring code:

M-x query-replace

This allows you to do a global search and replace. You'll be doing this a ton when you move methods and commonly-accessed data to other classes or namespaces.

C-x 3

This gives you a display with two buffers side-by side. You can then proceed to load different files in them, and move your cursor from one to the other with C-x o. This is pretty basic stuff, but I mention it because of how powerful it makes the next one...

C-x (
(type any amount of stuff and/or emacs commands here)
C-x )

This is how you define a macro in emacs. Any time you find yourself needing to do the same thing over and over to a bunch of code (and it is too complex for query-replace), this is a lifesaver. If you mess up, you can hit C-g to stop the macro definition, and then undo (C-_) until you are back to where you started. The keys to invoke the macro are C-x e. If you want to do it a bunch of times, you can hit Esc and type in a number first. Eg: Esc 100 C-x e will try to invoke your macro 100 times.

(Note: On Windows you can get "Meta" by hitting the Esc key, or holding down Alt).