Skip to main content
 首页 » 编程设计

python之如何在 Vim 中为 Python 代码切换注释和取消注释

2025年05月04日12www_RR

我希望有一个命令来切换在 python 代码的一行/ block 中进行评论。

我在我的 .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)

但是,您是否有一种切换方式,也就是说,如果未评论则使用相同的快捷方式进行评论,如果已评论则使用相同的快捷方式?

请您参考如下方法:

还有 NERD Commenter来自 Scrooloose ,制造商 NERD Tree .好像more extensive比vim-commentary .

我唯一使用的 map 是 <leader>c<space> (我的配置为 ,c),切换评论。