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:
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.
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).