当我使用gqG时,如何阻止Vim加入线?

Aus*_*n R 6 vim code-formatting

我养成了编写太长的代码行的坏习惯,所以我终于在我的.vimrc中设置了"colorcolumn = 101"和textwidth = 100.

我希望能够追溯性地将这些线宽限制应用于我已编写的文件,并且我发现从文件顶部开始并按gqG排序就可以了.它将分割太长的线条,但如果它们适合100个字符,它也会将线条连接在一起.

所以,如果一开始我有:

import java.io.File;
import java.io.IOException;
import java.util.Map;
Run Code Online (Sandbox Code Playgroud)

它会变成:

import java.io.File; import java.io.IOException; import java.util.Map;
Run Code Online (Sandbox Code Playgroud)

我不是真的想要行加入行为.

Ing*_*kat 5

要打破长线,您可以单独为每条线执行此操作gqq.将此与仅在长度超过100(:help /\%v)的行上的条件执行相结合:global,如下所示:

:%global/\%>100v/normal! gqq
Run Code Online (Sandbox Code Playgroud)

请注意,这可能仍会引入语法错误,例如在// ...评论领导者之后打破行.


Chi*_*nke 2

或者,您可以使用外部程序来格式化代码。我建议将astyle (http://astyle.sourceforge.net/ 以及 ubuntu 存储库中的)与 vim 插件vim-autoformat (https://github.com/Chiel92/vim-autoformat)结合使用。

后者将第一个集成到 vim 中,这样当您按 时 astyle 就会格式化您的代码gqG

  • 向我刚刚删除了最佳答案的人表示歉意,但这对我的 Vim 来说确实是一个很棒的补充。 (2认同)