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.
Search and replace on variable name within S-Expression (lexical scope)?
543 Views Asked by Eric Schoonover At
2
There are 2 best solutions below
0

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-'
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 aquery-replace
as usual - it restricts itself to the active region.