【发布时间】:2010-11-03 19:21:08
【问题描述】:
我有一个 c++ 代码文件,但有相当难看的缩进。我如何告诉 emacs 对文件重新应用缩进?
【问题讨论】:
标签: emacs indentation
我有一个 c++ 代码文件,但有相当难看的缩进。我如何告诉 emacs 对文件重新应用缩进?
【问题讨论】:
标签: emacs indentation
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 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。
【讨论】:
选择整个缓冲区并执行 M-x indent-region
【讨论】:
(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/复制了这个)
【讨论】: