防止 clang-format 删除 emacs 的换页符

Posted

技术标签:

【中文标题】防止 clang-format 删除 emacs 的换页符【英文标题】:Prevent clang-format from removing emacs's formfeed character 【发布时间】:2020-10-29 17:48:47 【问题描述】:

我使用clang-format 来格式化我的源代码。它真的很方便,但是,我在使用 Emacs 时遇到了一个问题。我将我的文件分成pages 以保持它们的狭窄,特别是在处理大型头文件时,这变得非常方便。

问题是,为了指定一个页面,你需要插入一个特殊字符014^L,但是clang-format 在我格式化的所有时候都会删除这个字符。有没有办法改变这种行为?

【问题讨论】:

【参考方案1】:

起初我认为这是不可能的。但是,您可以通过将^L 括在引号内来实现。例如:

#include <stdio.h>
int main()

    int i;
    function_call_on_first_page();
    // "^L" <-- use an actual control-L character inside those quotes
    function_call_on_next_page();
    return 0;

它很丑,但它可能会解决你的问题。我用 clang-format 6.0 版对此进行了测试。单引号或双引号似乎都可以工作。

或者,您可以尝试将代码分成“区域”,并使用Equivalent of #region for C++ 中描述的方法之一。不幸的是,这些方法都不是非常便携。

【讨论】:

啊,看起来emacs只有在单独一行时才使用^L。抱歉,我没有看到任何解决方案。 是的,就是这样,我看看我是否可以做一些 elisp hacking 来让它工作.. 仍然感谢您的帮助

以上是关于防止 clang-format 删除 emacs 的换页符的主要内容,如果未能解决你的问题,请参考以下文章

clang-format 使用指示符删除数组定义中的新行

Emacs:防止自动填充模式在乳胶 \text... 内联命令中断行

防止emacs混合制表符和空格?

编写日志条目时防止GNU Emacs退出

Emacs:删除空格或单词

Emacs的删除行操作细节