如何在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: Shift – I
# 空间 (进入左插入模式,键入要插入的字符,select将消失,但其中的所有行将在步骤4后修改。
第四步:
单向手动
: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注释该块。