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 に答える