我是一个vim用户,并且有一个nerdcommenter插件,问题是当我使用<leader>c<space>
注释掉代码(也是代码块)时,它在代码前面#前缀#,但是pep8样式检查器是抱怨我应该在#
例如。
#string = 'abc'
但我希望它评论:
# string = 'abc'
答案 0 :(得分:51)
我发现在我的.vimrc
中添加以下信息很有帮助。
let NERDSpaceDelims=1
这为所有语言添加了所需的额外空间 (参见&#34; NERDSpaceDelims&#34;在https://github.com/scrooloose/nerdcommenter/blob/master/doc/NERD_commenter.txt)
答案 1 :(得分:2)
从第67行开始,/plugin/NERD_commenter.vim file中的分隔符似乎是硬编码的。对于要修改的文件类型,您应该能够将“#”更改为“#”。
更新: 我找到了一种更有意和更优选的方法来实现这一目标。该插件具有处理它所谓的CustomDelimiters的代码。您可以在vimrc中使用类似的内容,以更加明显和可转换的方式完成上述相同的操作:
let g:NERDCustomDelimiters = { 'py' : { 'left': '# ', 'leftAlt': '', 'rightAlt': '' }}
答案 2 :(得分:0)
未经超级测试但似乎有效。
" Add space after comments if NERDCommenter didn't.
augroup NERDCommenter_whitespace_defender
au!
" SOURCE: https://github.com/preservim/nerdcommenter/blob/master/plugin/NERD_commenter.vim#L58
au BufEnter * if has_key(g:NERDDelimiterMap, &ft) |
\ let g:NERDSpaceDelims = (g:NERDDelimiterMap[&ft]['left'][-1:] =~ '\s') ? 0 : 1 |
\elseif &filetype ==? 'vim' |
\ let g:NERDSpaceDelims = 1 |
\endif
augroup END