在Emacs中,我们如何为现有代码应用新的缩进样式?

时间:2011-01-24 02:07:46

标签: emacs

正在阅读indent style,现在我必须将当前的缩进样式从Banner Style更改为Allman Style。我已经使用c-set-style更改了缩进样式并选择了bsd。但是,现在我如何应用新的缩进样式?

也就是说,emacs可以重新格式化我的代码,并应用这个新的编码吗? 如何配置emacs以使用此sytle作为我的java默认样式。

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用缩进区域来应用缩进设置。如果你想重新缩进整个缓冲区,标记整个缓冲区(C-x h)后跟缩进区域(C-M- \)应该这样做。

编辑:

如果你想自动将大括号移动到他们自己的行上,就像你引用的样式一样,你也必须做一些正则表达式替换。以下可能是一个开始:

(query-replace-regexp "^\\([^{}\n]+[^{} \t\n]+[^{}\n]*\\)\\([{}]\\)$" "\\1\n\\2")     

这将占用行中最后一个字符的任何{或}字符,并将其放在自己的行上。它将忽略作为其行第一个字符的任何{}字符。您可能需要遵循以下步骤:

(query-replace-regexp "^\\(\\s *[{}]\\)\\(.+\\)$" "\\1\n\\2") 

这将占用行首先出现的任何{}个字符,后跟其他字符,并在大括号和其他字符之间插入换行符。

在此之后,我对mark-whole-buffer和indent-region的原始建议应该纠正缩进。

编辑2:修复第一个正则表达式以计算前导空格