我正在尝试使用emacs批量缩进源文件。我正在使用命令:
$ emacs -batch Source.h -l emacs-format-file.el -f emacs-format-function
其中emacs-format-file.el包含:
(defun emacs-format-function ()
(c-set-style "gnu")
(setq c-basic-offset 4)
(c-set-offset 'access-label nil)
(c-set-offset 'substatement-open 0)
(indent-region (point-min) (point-max) nil)
(untabify (point-min) (point-max))
(save-buffer)
)
Emacs根据我的喜好缩进文件,但有一个例外。 “public”,“private”和“protected”关键字都缩进了额外的空格:
class Foo
{
-public:
+ public:
我想将这些关键字与前面的左括号对齐。基于this question我认为设置'access-label'会解决这个问题,但它似乎没有任何影响。
我错过了什么?
答案 0 :(得分:1)
事实证明,emacs正在将头文件作为C而不是C ++处理。解决方法是将.el文件更改为手动切换到C ++模式:
(defun c++-indent-region ()
(c++-mode)
(c-set-style "gnu")
(setq c-basic-offset 4)
(indent-region (point-min) (point-max) nil)
(untabify (point-min) (point-max))
(save-buffer)
)