2013-05-25 28 views
1

我希望有一個命令來切換註釋在Python代碼行/塊中。如何在Vim for 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 

(改編自this StackOverflow entry

但是,是你的方式有一個切換,即,使用相同的快捷方式如果評論沒有註釋,則評論或取消註釋?

回答

4

您可以使用Tim Pope的vim-commentary插件。然後您可以創建一個映射,例如

nmap ,cc <Plug>CommentaryLine 

通過此映射,您可以評論和取消註釋相同的密鑰序列。它也自動適應文件類型。對於不支持的文件類型,您可以手動設置commentstring

+0

一個很好的插件。默認映射是'gcc',並且它完全符合您的要求:切換註釋/取消註釋。 – glts

相關問題