如何使用修改NERDCommenter的行为来评论所选的* ALL *行

时间:2012-06-14 15:44:10

标签: vim

在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>

1 个答案:

答案 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就是从插件文件中删除这部分代码。