我有一个C++代码文件,但它的缩进非常丑陋。我该如何告诉Emacs重新应用缩进到文件中?
C-x h C-M-\
这两个命令选择整个缓冲区并运行indent-region
。
以下是我放在~/.emacs.d/defuns.el
文件中的“整个缓冲区缩进”代码。我还额外绑定了一个快捷键C-x \
。这个代码还会清除所有悬挂的空格,并将制表符转换为它们的空格等效表示。
(defun indent-buffer ()
"Indents an entire buffer using the default intenting scheme."
(interactive)
(point-to-register 'o)
(delete-trailing-whitespace)
(indent-region (point-min) (point-max) nil)
(untabify (point-min) (point-max))
(jump-to-register 'o))
(global-set-key "\C-x\\" 'indent-buffer)
编辑,包含 @JSONs 下面的建议将会让你得到一个如下所示的 defun:
(defun indent-buffer ()
"Indents an entire buffer using the default intenting scheme."
(interactive)
(save-excursion
(delete-trailing-whitespace)
(indent-region (point-min) (point-max) nil)
(untabify (point-min) (point-max))))
我测试了一下,它像以前一样有效。感谢JSON指出这一点。
(defun iwb ()
"indent whole buffer"
(interactive)
(delete-trailing-whitespace)
(indent-region (point-min) (point-max) nil)
(untabify (point-min) (point-max)))
ESC C-\
。Mac 用户可能需要额外设置将 Alt 作为 Meta。 - eGlyph