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

所以基本上可以转换以下内容

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

to

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

我可以使用#或“”来注释掉相关的行。理想情况下,如果给定的行已被注释掉,我还希望使用相同的键映射来取消注释。


当前回答

坦率地说,我使用一个tcomment插件来链接。它可以处理几乎所有的语法。它定义了漂亮的移动,使用它与一些特定于python的文本块匹配器使它成为一个强大的工具。

其他回答

CtrlK评论(可视模式):

vnoremap <silent> <C-k> :s#^#\##<cr>:noh<cr>

取消注释(可视模式)的CtrlU:

vnoremap <silent> <C-u> :s#^\###<cr>:noh<cr>

单向手动

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

用ShiftV突出显示你的区块

用::norm i#(小写i)注释所选的块

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

norm命令对每一行执行一个操作。注释会在每行开头插入一个#,取消注释会删除这个#。

坦率地说,我使用一个tcomment插件来链接。它可以处理几乎所有的语法。它定义了漂亮的移动,使用它与一些特定于python的文本块匹配器使它成为一个强大的工具。

我通常扫出一个可视块(<C-V>),然后搜索并替换第一个字符:

:'<,'>s/^/#

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

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