Поиск и замена по имени переменной в S-Expression (лексическая область)? - PullRequest
5 голосов
/ 25 марта 2012

Использование emacs с включенным Paredit. Как я могу найти S-выражение LISP (Clojure) и переименовать переменную? Я хотел бы сделать это в текущем S-выражении, а не глобально.

Ответы [ 2 ]

9 голосов
/ 25 марта 2012

Просто используйте C-M-<space> в начале s-выражения, которое вы хотели бы использовать в качестве своей области, чтобы выделить его, а затем выполните query-replace как обычно - оно ограничивается активной областью.

2 голосов
/ 25 марта 2012

query-replace с активной областью вполне подходит для общего поиска / замены в регионе.Но для рефакторинга кода я очень предпочитаю iedit .

Чтобы переименовать переменную в функции defun, перейдите к символу, который нужно переформатировать, нажмите C-0 C -; и отредактируйте.

Чтобы переименовать переменную в произвольной области, перейдите к символу, нажмите C -; , выберите интересующую область и нажмите C -; снова.

В iedit есть много других функций, помогающих рефакторингу кода.Подсказка: C - '

...