我的公司最近添加了一些新的代码样式规则,我想知道是否有一种简单的方法可以通过emacs来改变一些具有正则表达式替换的东西。
如果语句现在必须如下所示:
if (expression) {
我有许多看起来像这样:
if(expression){
缺乏空间。有没有一种简单的方法来解决这个问题?
答案 0 :(得分:2)
如果expression
总是在一行上,你可能能够regexp替换它,但为了安全起见,我会使用一次丢弃函数:
(defun my-fix-style ()
(interactive)
(save-excursion
(goto-char (point-min))
(while (re-search-forward "\\_<if(" nil t)
(backward-char)
(insert " ")
(forward-sexp)
(unless (looking-at "[ \t\n]")
(insert " ")))))
答案 1 :(得分:1)
只是我的两分钱,但如果我要用emacs做这个,我可能会避免使用正则表达式并分两部分来处理它。首先,我通过做一个Meta-%替换if(
和if (
“if(”“if(”引号仅用于描述,它们不属于输入然后回答每个单独的替换查询,或者给它一个“!”告诉它做所有替换。重复关闭){
到) {
的过程。
在我的头顶,我希望第一个替代品可以毫无问题地工作。第二个也会在循环中得到“){”组合,但是如果你的新标准需要if语句的空间,我希望它也可以用于循环,所以这似乎应该是一件好事。