我有一个不好的习惯,就是写太长的代码行,所以我终于在我的.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 会格式化你的代码。