在Vim中,当我使用NERDCommenter评论多行视觉选择时,选项中的空行不会被注释。在下面的示例中,我选择所有5行并键入“\ cl”(对于NERDCommenterAlignLeft),但第3行(空白)未被注释。
在:
" Normalize Markdown : Remove Trailing # From Headers
nnoremap <Leader>qq :%s/ \+#\+ *$//gc<CR>
" Normalize Markdown : Remove Trailing Whitespace
nnoremap <Leader>qw :%s/\s\+$//gc<CR>
后:
" " Normalize Markdown : Remove Trailing # From Headers
" nnoremap <Leader>qq :%s/ \+#\+ *$//gc<CR>
" " Normalize Markdown : Remove Trailing Whitespace
" nnoremap <Leader>qw :%s/\s\+$//gc<CR>
答案 0 :(得分:3)
这是在NERDCommenter插件中实现的方式。如果您打开插件文件(NERD_commenter.vim)并查找名为s:CanCommentLine
的函数,您将看到它具有以下检查:
" make sure we don't comment lines that are just spaces or tabs or empty.
if theLine =~ "^[ \t]*$"
return 0
endif
因此,在插件继续注释一行之前,它会检查它是否为空行。如果是这样,插件不会对其进行评论并跳到下一行。
quickfix就是从插件文件中删除这部分代码。