5

Using emacs with Paredit enabled. How can I search through a LISP (Clojure) S-expression and rename a variable? I'd like to do it within the current S-expression instead of globally.

Eric Schoonover
  • 47,184
  • 49
  • 157
  • 202

2 Answers2

9

Just use C-M-<space> at the start of the s-expression you'd like to use as your scope, to highlight it, and then do a query-replace as usual - it restricts itself to the active region.

amalloy
  • 89,153
  • 8
  • 140
  • 205
2

The query-replace with active region is quite good for general search/replace in region. But for refactoring code, I much prefer iedit.

To rename a variable within a defun, go to the symbol to be reanmed, press C-0 C-; and edit away.

To rename a variable within arbitrary region, go to the symbol, press C-;, select the region of interest, and press C-; again.

iedit has many other functions to help code refactoring. Hint: C-'

event_jr
  • 17,467
  • 4
  • 47
  • 62