如何替换一个字而不是像这样的emacs中的字符串?
问题描述:
例如,我有下面的代码:如何替换一个字而不是像这样的emacs中的字符串?
(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))))
,现在我想用is-lighted
替代变量名a
重构该块,但没有换句话说改变其它字符a
(例如,在interactive
或tab
)。
emacs中是否有内置的函数可以完成这项工作?
答
C-ùM-%a
RETis-lighted
RET
前缀参数( “分隔”)切换到标准的查询 - 替换功能包与字边界标记的图案。
答
虽然phils's answer是正确和惯用的,您还应该了解有关\b
字边界的正则表达式。因此,等效的正则表达式替换将是M-%\ba\b
。请参阅Backslash in Regular Expressions @ Emacs Manual和Regular Expression @ EmacsWiki。