How to toggle between comment and uncomment in Vim for Python code
我希望有一个命令来切换python代码的行/块中的注释。
我在
1 2 3 4 5 6 7 8 9 10 11 12 | " (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/# / /ge<CR>:noh<CR>gv`n |
(改编自此StackOverflow条目)
但是,你是一种进行切换的方法,也就是说,如果它被注释,则使用相同的快捷方式进行注释,如果它被注释,则取消注释?
还有来自NERD Tree的制造商Scrooloose的NERD Commenter。 它似乎比vim评论更广泛。
我使用的唯一地图是
您可以使用Tim Pope的vim-appmentary插件。 然后,您可以创建一个映射
1 | nmap ,cc <Plug>CommentaryLine |
使用此映射,您可以使用相同的键序列进行注释和取消注释。 它还会自动适应文件类型。 对于不支持的文件类型,您可以手动设置
默认映射是