例如,我有以下代码:
(defun toggle-light ()
"Toggle setting tab widths between 4 and 8"
(setq a
(if (boundp 'a) a nil))
(interactive)
(if a
(progn
(load-theme 'solarized-dark t)
(setq a nil))
(progn
(load-theme 'solarized-light t)
(setq a t) )))
现在我想通过用a
替换变量名is-lighted
来重构这些块,但换句话说不改变其他字符a
(例如,在{{1}中) }或interactive
)。
emacs中是否有可以完成这项工作的内置功能?
答案 0 :(得分:6)
Cu M - % a
RET is-lighted
RET
标准查询替换函数的前缀参数(“分隔符号”)使用字边界标记包装模式。
答案 1 :(得分:1)
虽然phils's answer是正确且惯用的,但您还应该了解\b
字边界正则表达式。因此,等效的regexp替换将是 M - % \ba\b
。请参阅Backslash in Regular Expressions @ Emacs Manual和Regular Expression @ EmacsWiki。