1

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

1 回答 1

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

因此,在插件继续注释一行之前,它会检查它是否为空行。如果是这样,插件不会评论它并跳到下一行。

一个快速修复方法是简单地从插件文件中删除这部分代码。

于 2012-06-15T14:11:35.827 回答