我使用vim的块插入来注释这样的代码块(将方括号视为光标):
[k]eyword {
variable declaration;
return_type function_or_something() {
for (a; b; c) {
do_something_funky();
}
}
点击Ctrl+V
6jI//
Space
Esc
[/]/ keyword {
// variable declaration;
// return_type function_or_something() {
// for (a; b; c) {
// do_something_funky();
// }
// }
一切都很好,但在这种情况下:
[k]eyword { // this is a block of code with a somewhat long comment
variable declaration;
return_type function_or_something() {
for (a; b; c) {
do_something_funky();
}
}
点击Ctrl+V
6jI//
,此时textwidth=80
和formatoptions=caq1njw
的组合开始了,因为我的//
已经超过了文字宽度,它触发了换行,一旦发生这种情况,我的可视块插入操作就是吐司,所以只有第一行实际上最终被注释掉了,结果我放松了一串咒骂。
[/]/keyword { // this is a block of code with a somewhat long
//comment
variable declaration;
return_type function_or_something() {
for (a; b; c) {
do_something_funky();
}
}
似乎是一个长镜头,但我想知道是否有人知道一个解决方法/修复......当我开始一个视觉块选择时,我可以暂时吹走formatoptions
?怎么做?
注意:我尝试在o
之前点击I
将光标放在块选择的下边缘,但它没有帮助,它的工作方式是一旦你击中I
它会将光标重新定位到顶行,随后在您将该行转换为注释时将其复活。
答案 0 :(得分:1)
Vim无法识别已注释掉的代码和正常注释。我不认为这样的事情存在。您的'formatoptions'
指定评论中插入的文字应该重排。您正在插入评论,以便评论将重排。你可以通过不插入而不是其他东西来避免这种情况,比如替换。
:s#^#//
但到目前为止,最简单的解决方案是使用众多评论插件中的一个。有很多选项:commentary(我使用),Nerd Commenter,EnhCommentify,tComment,...,etc。