如何在Vim中注释掉一段Python代码

我想知道在Vim中是否有任何键映射允许我缩进某些代码行(无论这些行是在可视模式中select,还是在当前光标位置上方/下方有n行)。

所以基本上是转换以下内容的东西

def my_fun(x, y): return x + y 

 #def my_fun(x, y): # return x + y 

我可以使用#"""注释掉相关的行。理想情况下,如果给出的行已经被注释掉了,我还想用相同的keymapping去注释行。

第1步:转到您要评论的第一行的第一列。

初始状态

第2步:按下: Ctrl + v并select您要评论的行:

选择线

步骤3: ShiftI 空间 (进入左插入模式,键入要插入的字符,select将消失,但其中的所有行将在步骤4后修改。

评论

第四步:

<Esc>键

单向手动

 :set number :10,12s/^/# 

您可以将以下映射添加到.vimrc

 vnoremap <silent> # :s/^/#/<cr>:noh<cr> vnoremap <silent> -# :s/^#//<cr>:noh<cr> 

突出显示您的区块:

 Shift+v 

#来评论你的第一栏。

-#取消注释相同的方式。

用下面的方式突出显示你的块: Shift+v

用下面的方式评论选出的块:norm i# (小写字母i)

要取消注释,请再次突出显示您的块,并取消注释:norm ^x

:norm命令为每个选定的行执行一个操作。 注释将在每一行的开始处插入一个# ,取消注释将删除该#

有一些很好的插件可以帮助评论/取消评论。 例如NERD评论者 。

我通常会扫出一个可视块( <CV> ),然后search并replace第一个字符:

 :'<,'>s/^/# 

(进入命令模式时,select一个可视化块自动在命令行上放置'<,'>)然后我可以通过清除同一个可视化块来取消注释块,并且:

 :'<,'>s/^#// 

我在我的.vimrc有以下几行:

 " comment line, selection with Ctrl-N,Ctrl-N au BufEnter *.py nnoremap <CN><CN> mn:s/^\(\s*\)#*\(.*\)/\1#\2/ge<CR>:noh<CR>`n au BufEnter *.py inoremap <CN><CN> <CO>mn<CO>:s/^\(\s*\)#*\(.*\)/\1#\2/ge<CR><CO>:noh<CR><CO>`n au BufEnter *.py vnoremap <CN><CN> mn:s/^\(\s*\)#*\(.*\)/\1#\2/ge<CR>:noh<CR>gv`n " uncomment line, selection with Ctrl-N,N au BufEnter *.py nnoremap <CN>n mn:s/^\(\s*\)#\([^ ]\)/\1\2/ge<CR>:s/^#$//ge<CR>:noh<CR>`n au BufEnter *.py inoremap <CN>n <CO>mn<CO>:s/^\(\s*\)#\([^ ]\)/\1\2/ge<CR><CO>:s/^#$//ge<CR><CO>:noh<CR><CO>`n au BufEnter *.py vnoremap <CN>n mn:s/^\(\s*\)#\([^ ]\)/\1\2/ge<CR>gv:s/#\n/\r/ge<CR>:noh<CR>gv`n 

只要以#开始( #后面有空格),快捷方式就会保留光标位置和注释。 例如:

 # variable x x = 0 

在评论之后:

 # variable x #x = 0 

在uncomennting之后:

 # variable x x = 0 

坦率地说,我使用一个tcomment插件的链接 。 它几乎可以处理每种语法。 它定义了很好的运动,使用它与python特定的一些文本块匹配器使其成为一个强大的工具。

NERDcommenter是一个非常好的插件,可以自动检测多个文件types及其相关的注释字符。 使用病原体可以很容易地安装。

评论<leader>cc 。 取消<leader>cu注释。 并用<leader>c<space>切换注释。

(vim中默认的<leader>键是\

vim有很多评论插件,其中有许多是多语言的 – 不仅仅是python。 如果你使用像Vundle这样的插件pipe理器,那么你可以使用例如:search它们(一旦你安装了Vundle)

 :PluginSearch comment 

你会得到一个结果窗口。 另外,你可以searchvim脚本的评论插件 。

Ctrl + k注释(可视模式):

 vnoremap <silent> <Ck> :s#^#\##<cr>:noh<cr> 

Ctrl + u取消注释(可视模式):

 vnoremap <silent> <Cu> :s#^\###<cr>:noh<cr> 

一个非常轻量级的插件 :vim-comment。

gcc评论一行
gcgc取消注释。 检查出更多的插件页面。

v + k / j突出显示块,然后gcc注释该块。