我正在寻找一种方便的方法来修复行长超过 Vim 中特定字符数的注释。我可以使用代码手动执行此操作,特别是因为它不那么频繁,加上重构长行通常是语言,甚至是代码样式依赖,但使用注释这纯粹是苦差事。
发生的情况是,我经常在评论中发现一些问题,调整一两个词,然后该行超出了 80 个字符的限制。我将最后一个单词移到下一行,然后下一行溢出,依此类推。有谁知道在 Vim 中自动执行此操作的方法?
我正在寻找一种方便的方法来修复行长超过 Vim 中特定字符数的注释。我可以使用代码手动执行此操作,特别是因为它不那么频繁,加上重构长行通常是语言,甚至是代码样式依赖,但使用注释这纯粹是苦差事。
发生的情况是,我经常在评论中发现一些问题,调整一两个词,然后该行超出了 80 个字符的限制。我将最后一个单词移到下一行,然后下一行溢出,依此类推。有谁知道在 Vim 中自动执行此操作的方法?
如果这是一个常规问题,我建议将以下内容放入您的 vimrc:
nnoremap <leader>f gqip
这将前导 f 快捷方式(f 表示“格式”)映射为使用 gq 格式化注释(在设置一些格式选项标志后考虑一个段落),将注释格式化为当前设置textwidth
或tw
选项的宽度。你应该在你的 .vimrc 中设置 textwidth textwidth=80
。
Formatoptions 是您应该摆弄的另一件事,特别是在您的情况下,通过添加acq
带有formatoptions+=acq
. 小心删除t
标志,formatoptions-=t
因为它会自动包装你的所有代码,而不仅仅是识别的注释。完成所有这些操作后,您应该能够只在注释内点击 f 和格式,无论是否被空行包围。
这是有关格式选项的相关信息,因此您可以做出自己的选择。
t Auto-wrap text using textwidth
c Auto-wrap comments using textwidth, inserting the current comment
leader automatically.
r Automatically insert the current comment leader after hitting
<Enter> in Insert mode.
o Automatically insert the current comment leader after hitting 'o' or
'O' in Normal mode.
q Allow formatting of comments with "gq".
Note that formatting will not change blank lines or lines containing
only the comment leader. A new paragraph starts after such a line,
or when the comment leader changes.
w Trailing white space indicates a paragraph continues in the next line.
A line that ends in a non-white character ends a paragraph.
a Automatic formatting of paragraphs. Every time text is inserted or
deleted the paragraph will be reformatted. See |auto-format|.
When the 'c' flag is present this only happens for recognized
comments.