我想知道在Vim中是否有任何键映射允许我缩进某些行代码(是否这些行已在可视模式下选择,或在当前光标位置上方/下方的n行)。
所以基本上可以转换以下内容
def my_fun(x, y):
return x + y
to
#def my_fun(x, y):
# return x + y
我可以使用#或“”来注释掉相关的行。理想情况下,如果给定的行已被注释掉,我还希望使用相同的键映射来取消注释。
我想知道在Vim中是否有任何键映射允许我缩进某些行代码(是否这些行已在可视模式下选择,或在当前光标位置上方/下方的n行)。
所以基本上可以转换以下内容
def my_fun(x, y):
return x + y
to
#def my_fun(x, y):
# return x + y
我可以使用#或“”来注释掉相关的行。理想情况下,如果给定的行已被注释掉,我还希望使用相同的键映射来取消注释。
当前回答
用ShiftV突出显示你的区块
用::norm i#(小写i)注释所选的块
要取消注释,请再次突出显示您的块,并使用::norm ^x取消注释
norm命令对每一行执行一个操作。注释会在每行开头插入一个#,取消注释会删除这个#。
其他回答
我通常扫出一个可视块(<C-V>),然后搜索并替换第一个字符:
:'<,'>s/^/#
(进入命令模式,选择一个可视块自动放置'<,'>在命令行上)然后我可以通过清除相同的可视块来取消注释块,并且:
:'<,'>s/^#//
有一些很好的插件可以帮助注释/取消注释行。比如书呆子评论家。
NERD评论者的快捷方式示例:
[count]|<Leader>|cc |NERDCommenterComment|
Comment out the current line or text selected in visual mode.
[count]|<Leader>|cu |NERDCommenterUncomment|
Uncomments the selected line(s).
完整的文档在这里。
一个非常小的轻量级插件:vim-commentary。
GCC来注释一行 GCGC对此不予置评。查看插件页面了解更多信息。
V +k/j突出显示块,然后GCC注释该块。
用ShiftV突出显示你的区块
用::norm i#(小写i)注释所选的块
要取消注释,请再次突出显示您的块,并使用::norm ^x取消注释
norm命令对每一行执行一个操作。注释会在每行开头插入一个#,取消注释会删除这个#。
有很多用于vim的注释插件——其中一些是多语言的——而不仅仅是python。如果你使用像Vundle这样的插件管理器,那么你可以搜索它们(一旦你安装了Vundle)使用例如:
:PluginSearch comment
你会得到一个结果窗口。或者你也可以在vim-scripts中搜索注释插件。
正如在其他答案中提到的,NERDCommenter是一个很好的答案-有关使用它的更多信息,请参阅这个答案。注意:<前导>键通常是\。例如,要注释掉一行,输入:\cc