Emacs正则表达式查询替换,表达式中的空格被删除

时间:2014-04-23 14:47:52

标签: regex emacs

我正在尝试用emacs中的正则表达式替换文件中错误的C支撑样式。

全部

if (foo)
{
    bar();
}

和喜欢的人必须成为:

if (foo) {
    bar();
}

让我们不讨论这样做是否是个好主意,或者哪种支撑方式最好。请。

我正在尝试使用emacs' query-replace-regexp

  • 匹配" ^Q^J +{"
  • 替换为" SPC{^Q^J",SPC为实际空间(未在此处显示)

不知何故,要替换的字符串中的第一个字符没有被考虑在内,我最终得到:

if (foo){
    bar();
}

{之前没有空格。)

知道发生了什么,以及我如何确保空间到达那里?

1 个答案:

答案 0 :(得分:0)

这个怎么样:

(defun braces-KR-style ()
  (interactive)
  (goto-char (point-min))
  (while (search-forward-regexp "\n[[:blank:]]*?{" nil t)
    (replace-match " {" nil t))
  )