Emacs regex查询替换,表达式中的空格已删除
我试图用emacs中的正则表达式替换文件中错误的C支撑样式 全部 类似的情况必须变成:Emacs regex查询替换,表达式中的空格已删除,regex,emacs,Regex,Emacs,我试图用emacs中的正则表达式替换文件中错误的C支撑样式 全部 类似的情况必须变成: if (foo) { bar(); } 请我们不要讨论这样做是否是个好主意,或者哪种支撑方式最好。求你了 我正试图通过emacs的query replace regexp实现这一点: 匹配“^Q^J+{” 替换为“SPC{^Q^J”,其中SPC为实际空格(此处不显示) 不知何故,字符串中要替换为的第一个字符没有被考虑在内,我最终得到: if (foo){ bar(); } (在{之前没
if (foo) {
bar();
}
请我们不要讨论这样做是否是个好主意,或者哪种支撑方式最好。求你了
我正试图通过emacs的query replace regexp实现这一点:
- 匹配“
”^Q^J+{
- 替换为“
”,其中SPC{^Q^J
为实际空格(此处不显示)SPC
if (foo){
bar();
}
(在{
之前没有空格)
知道发生了什么吗?我如何确保空间到达那里?这个怎么样:
(defun braces-KR-style ()
(interactive)
(goto-char (point-min))
(while (search-forward-regexp "\n[[:blank:]]*?{" nil t)
(replace-match " {" nil t))
)
将“^Q^J*{”替换为“{”为什么它不能与
+
一起使用?我尝试替换任何大于1的空格数(即不是第1列的{
)。如果我使用*
,我会替换{
在函数定义的开头。我只是尝试了您的regexp和替换,但没有得到您观察到的效果,即,我确实在(foo)
和{
之间有一个空格。P.S.:为什么在之后重新插入^Q^J
{
在替换中?大括号后面不是应该有一个换行符吗?@Thomas:这很奇怪。你对^Q^J
的看法是正确的,删除它会使缺少的空格出现。所以我的实际问题有了解决方案,但我仍然不明白为什么添加^Q^J
会删除空格。这不是原因,事实上,即使我将^Q^J
保留在中(这会产生预期的空行),它对我也很有效。
(defun braces-KR-style ()
(interactive)
(goto-char (point-min))
(while (search-forward-regexp "\n[[:blank:]]*?{" nil t)
(replace-match " {" nil t))
)