How to comment out a block of Python code in Vim
我想知道Vim中是否有任何键映射允许我缩进某些代码行(是否在可视模式下选择了这些行,或者当前光标位置上方/下方的n行)。
所以基本上可以转换以下内容
1 2 | def my_fun(x, y): return x + y |
至
1 2 | #def my_fun(x, y): # return x + y |
我可以使用
第1步:转到要评论的第一行的第一列。
第2步:按:Ctrl + v并选择要评论的行:
步骤3:Shift-
第4步:Esc
单向手动
1 2 | :set number :10,12s/^/# |
您可以将以下映射添加到.vimrc
1 2 | vnoremap <silent> # :s/^/#/<cr>:noh<cr> vnoremap <silent> -# :s/^#//<cr>:noh<cr> |
突出显示您的区块:
1 | Shift+v |
使用以下命令突出显示您的块:ShiftV
使用以下选项对所选块进行注释:
要取消注释,请再次突出显示您的块,并取消注释:
我通常扫出一个视觉块(
1 | :'<,'>s/^/# |
(进入命令模式并选择一个可视块自动在命令行上放置'<,'>)然后我可以通过清除相同的视觉块取消注释该块,并且:
1 | :'<,'>s/^#// |
有一些很好的插件可以帮助评论/取消注释行。例如NERD评论者。
我的
1 2 3 4 5 6 7 8 9 10 11 | " comment line, selection with Ctrl-N,Ctrl-N au BufEnter *.py nnoremap <C-N><C-N> mn:s/^\(\s*\)#*\(.*\)/\1#\2/ge<CR>:noh<CR>`n au BufEnter *.py inoremap <C-N><C-N> <C-O>mn<C-O>:s/^\(\s*\)#*\(.*\)/\1#\2/ge<CR><C-O>:noh<CR><C-O>`n au BufEnter *.py vnoremap <C-N><C-N> mn:s/^\(\s*\)#*\(.*\)/\1#\2/ge<CR>:noh<CR>gv`n " uncomment line, selection with Ctrl-N,N au BufEnter *.py nnoremap <C-N>n mn:s/^\(\s*\)#\([^ ]\)/\1\2/ge<CR>:s/^#$//ge<CR>:noh<CR>`n au BufEnter *.py inoremap <C-N>n <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 <C-N>n mn:s/^\(\s*\)#\([^ ]\)/\1\2/ge<CR>gv:s/# / /ge<CR>:noh<CR>gv`n |
只要它们以
1 2 | # variable x x = 0 |
评论后:
1 2 | # variable x #x = 0 |
不显眼之后:
1 2 | # variable x x = 0 |
NERDcommenter是一个出色的评论插件,可以自动检测多种文件类型及其相关的注释字符。使用Pathogen可以轻松安装。
用
(vim中的默认
坦率地说,我为该链接使用了一个tcomment插件。它几乎可以处理所有语法。它定义了很好的动作,使用它与python特有的一些文本块匹配器使它成为一个强大的工具。
无需插件或映射。尝试内置的"norm"命令,它可以在每个选定的行上执行您想要的任何操作。
添加#评论
1 2 | 1. shift V to visually select lines 2. :norm i# |
删除#Comments
1 2 | 1. visually select region as before 2. :norm x |
或者,如果你的评论是缩进的,你可以做
请注意,这些只是普通的vim命令,前面是":norm",以便在每一行上执行它们。
在这里的一个答案中使用"norm"命令的更详细的答案
什么是在Vim中评论/取消注释行的快速方法?
一个非常轻量级的插件:vim-appmentary。
gcc评论一行
gcgc取消注释。查看插件页面了解更多信息。
v + k / j突出显示该块然后gcc来评论该块。
用于评论的CtrlK(可视模式):
1 | vnoremap <silent> <C-k> :s#^#\##<cr>:noh<cr> |
用于取消注释的CtrlU(可视模式):
1 | vnoremap <silent> <C-u> :s#^\###<cr>:noh<cr> |
vim有很多评论插件 - 其中一些是多语言 - 而不仅仅是python。如果您使用像Vundle这样的插件管理器,那么您可以搜索它们(一旦您安装了Vundle),例如:
1 | :PluginSearch comment |
你会得到一个结果窗口。或者,您可以只搜索vim-scripts以获得评论插件。