我有一个c ++代码文件,但有一个非常丑陋的缩进。我如何告诉emacs将缩进应用于文件?
答案 0 :(得分:30)
C-x h C-M-\
这两个命令选择整个缓冲区并运行indent-region
。
答案 1 :(得分:8)
这是我放在~/.emacs.d/defuns.el
文件中的“缩进整个缓冲区”代码。我采取了额外的步骤并将其绑定到快捷键C-x \
。这个也将清除所有悬挂的whitspace,并将制表符转换为它们的空间等效表示。
(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。
答案 2 :(得分:5)
选择整个缓冲区并执行M-x缩进区域
请参阅this guide。
答案 3 :(得分:1)
(defun iwb ()
"indent whole buffer"
(interactive)
(delete-trailing-whitespace)
(indent-region (point-min) (point-max) nil)
(untabify (point-min) (point-max)))
你可以使用这个小宏(我从http://emacsblog.org/2007/01/17/indent-whole-buffer/复制了这个)