繁体   English   中英

如何在Vim for Python代码中在注释和注释之间切换

[英]How to toggle between comment and uncomment in Vim for Python code

我希望有一个命令可以在一行/块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

(从此StackOverflow条目改编)

但是,您是否有一种方法可以进行切换,即在未注释的情况下使用相同的快捷方式进行注释,或者在未注释的情况下使用相同的快捷方式进行注释?

还有NERD Tree的制造商ScroolooseNERD评论员 它似乎比vim评论 更广泛

我唯一使用的地图是<leader>c<space>,c对于我的配置,c ),切换注释。

您可以使用Tim Pope的vim-commentary插件。 然后,您可以创建一个映射,例如

nmap ,cc <Plug>CommentaryLine

使用此映射,您可以使用相同的键序列进行注释和取消注释。 它还会自动适应文件类型。 对于不支持的文件类型,您可以手动设置commentstring字符串。

默认映射是gcc ,它完全符合您的要求:切换已注释/未注释。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM