Vim有一个功能,如果上一个注释行太长并且被包装,它会自动在新行上插入注释前缀。如果按Enter键,它还会插入换行符前缀。这样可以很容易地输入长注释,但是当您想要结束注释时会很不方便。您必须点击退格键才能删除最后一行的注释前缀。
是否可以修改Vim,以便如果我只在最后一行按Enter键,它知道终止评论?
答案 0 :(得分:2)
这可以由formatoptions
控制。从链接的文档页面
' formatoptions'是一个字符串,可以包含下面的任何字母 的 ... 强>
t使用textwidth自动换行文本 c使用textwidth自动换行注释,自动插入当前评论标题 r在插入模式下按Enter键后自动插入当前注释引导符 o点击“' o”后自动插入当前评论标题。或者' O'在正常模式下。
的 ... 强>
这意味着您需要c
,而不是r
,大概不是o
。 .vimrc
autocmd FileType bash,csh setlocal formatoptions=c
您需要在其他位置设置textwidth
(例如set textwidth=72
)。
更多地查看链接页面的延续。如果您有一串字母,那么只需从中移除r
和o
即可。相关选项为comments
- 请参阅format-comments页。
答案 1 :(得分:0)
Vim怎么会知道你想要的最后一行是什么?
我能想到的唯一解决方法是绑定到InsertLeave
自动命令以清除该行,如果它只是一个注释字符:
autocmd InsertLeave * if getline('.') =~ '^# *$' | normal! 0D | endif
但是,它还会删除行上的注释字符,例如:
# Hello, world
#
# Continuing with the next paragraph
可以做出的改进:
解析&comments
以获取评论字符 - 请参阅:help format-comments
了解格式。
如果下一行没有以评论字符开头,则只删除该行。
您可以在插入模式下映射<Cr>
以执行类似的操作,这样您就不必离开插入模式 - 但是要非常小心,因为您可能会删除超过你想要的!
我的建议:只需按退格键。