当我使用 gqG 时,如何阻止 Vim 连接行



我有一个不好的习惯,就是写太长的代码行,所以我终于在我的.vimrc中设置了"colorcolumn=101"和textwidth=100。

我希望能够将这些行宽限制追溯应用于我已经编写的文件,并且我发现从文件顶部开始并按 gqG 就可以解决问题。它会正确拆分太长的行,但如果它们适合 100 个字符以内,它也会将行连接在一起。

所以如果一开始我有:

import java.io.File;
import java.io.IOException;
import java.util.Map;

它会变成:

import java.io.File; import java.io.IOException; import java.util.Map;

不过,我真的不想要线路连接行为。

要只换长行,您可以使用 gqq 单独对每行执行此操作。将其与仅在长度超过 100 (:help /%v) 的行上的条件执行结合使用,并带有 :global ,如下所示:

:%global/%>100v/normal! gqq

请注意,这仍可能引入语法错误,例如,在// ...注释引线后换行时。

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

后者将前者集成到 vim 中,这样当你按 gqG 时,astyle 会格式化你的代码。

最新更新