繁体   English   中英

如何在 Emacs 中强制执行最大行长度?

[英]How to enforce maximum line length in Emacs?

在 Emacs 中,如何强制最大行长度为 80 个字符? 我希望它在我的代码中插入正确的换行符,就像fill-paragraph文本fill-paragraph一样,如果可能的话,正确插入行的第二部分。

这里有一个小例子:

LongNameType<PrettyLong, AlsoLong> doSomethingWithLongFunctionName(int a, int b);
foo();

如果我真的做fill-paragraph它会变成:

LongNameType<PrettyLong, AlsoLong>
doSomethingWithLongFunctionName(int a, int b); foo();

而我更喜欢这个:

LongNameType<PrettyLong, AlsoLong>
  doSomethingWithLongFunctionName(int a, int b);
foo();

许多软件包会警告您行长度限制。 就个人而言,我使用宽列,它根据当前列更改光标颜色。

fill-paragraph 和 auto-fill-mode 故意不包装代码。 有太多的方法可以做到这一点,而且可能会出错。 他们会包装评论,但这对您没有帮助。

我曾经这样做过的唯一方法是明确地将我希望文本中断的位置。 然后自动缩进应该将折线放在正确的位置。

您是否正在尝试重排大量现有代码? 或者试图对您现在正在编写的代码进行自动填充?

不是真正的 emacser,但是如果在c++-mode 中打开auto-fill-mode会发生什么?

C++ 模式应该给你自动缩进,自动填充模式给你换行......

我使用modeline-posn包。 如果它大于指定值,它会突出显示模式行中的列号。

您应该查看 Emacs 的众多“垂直线”库之一。 有些在任何时候都在整个缓冲区上保留一条垂直高亮线(不是您真正想要的),但其他库始终将垂直高亮显示在固定列上,这不是您真正想要的,但您可以立即看到当你应该换行时。

您可以使用更高级的clang-format包。

  • 您必须安装 clang-fromat 及其 emacs 包。
  • 将此添加到您的 .emacs (setq clang-format-style "file")或添加到custom-set-variables '(clang-format-style "file")
  • 通过clang-format -style=gnu -dump-config > .clang-format生成模板样式,然后放入项目的根目录中。
  • 根据需要自定义 .clang-format 并将ColumnLimit: 120更改为 80 或您想要的任何值。

这将使用 clang-format 工具强制列限制。

参考: ClangFormatStyleOptions。 相关问题

尝试

'(c-max-one-liner-length 80)

'(fill-column 80)
'(c-ignore-auto-fill (quote (string cpp)))

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM