如何在Vim for Python代码中切换注释和取消注释

med*_*duz 1 python vim comments edit code-comments

我希望有一个命令来切换 python代码的行/块中的注释.

我在我的.vimrc文件中使用以下代码:

" (un-)commenting
" comment line, selection with Ctrl-N,Ctrl-N
au BufEnter *.py nnoremap ,c mn:s/^\(\s*\)#*\(.*\)/\1#\2/ge<CR>:noh<CR>`n
au BufEnter *.py inoremap ,c <C-O>mn<C-O>:s/^\(\s*\)#*\(.*\)/\1#\2/ge<CR><C-O>:noh<CR><C-O>`n
au BufEnter *.py vnoremap ,c mn:s/^\(\s*\)#*\(.*\)/\1#\2/ge<CR>:noh<CR>gv`n
"
" " uncomment line, selection with Ctrl-N,N
au BufEnter *.py nnoremap ,u mn:s/^\(\s*\)#\([^ ]\)/\1\2/ge<CR>:s/^#$//ge<CR>:noh<CR>`n
au BufEnter *.py inoremap ,u <C-O>mn<C-O>:s/^\(\s*\)#\([^ ]\)/\1\2/ge<CR><C-O>:s/^#$//ge<CR><C-O>:noh<CR><C-O>`n
au BufEnter *.py vnoremap ,u mn:s/^\(\s*\)#\([^ ]\)/\1\2/ge<CR>gv:s/#\n/\r/ge<CR>:noh<CR>gv`n
Run Code Online (Sandbox Code Playgroud)

(改编自此StackOverflow条目)

但是,你是一种进行切换的方法,也就是说,如果它被注释,则使用相同的快捷方式进行注释,如果它被注释,则取消注释?

tim*_*mss 5

还有NERD批评家Scrooloose,的制造商NERD树.它似乎比vim评论更广泛.

我使用的唯一地图是<leader>c<space>(,c对于我的配置),切换评论.