【问题标题】:How to toggle between comment and uncomment in Vim for Python code如何在 Vim for Python 代码中的注释和取消注释之间切换
【发布时间】:2013-05-20 22:12:24
【问题描述】:

我希望有一个命令来切换在 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

但是,您是否有一种切换方式,即,如果未注释则使用相同的快捷方式进行评论,或者如果已评论,则使用相同的快捷方式进行评论?

【问题讨论】:

标签: python vim edit comments


【解决方案1】:

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

nmap ,cc <Plug>CommentaryLine

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

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

【讨论】:

  • 一个优秀的插件。默认映射是gcc,它完全符合您的要求:切换已注释/未注释。
【解决方案2】:

还有来自ScroolooseNERD CommenterNERD Tree 的创建者。似乎more extensivevim-commentary

我使用的唯一地图是&lt;leader&gt;c&lt;space&gt;,c 用于我的配置),切换评论。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-02
    • 2011-04-14
    • 2017-10-25
    • 1970-01-01
    • 2012-06-12
    • 2019-08-25
    • 1970-01-01
    • 2023-03-23
    相关资源
    最近更新 更多