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

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

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

to

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

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


当前回答

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

GCC来注释一行 GCGC对此不予置评。查看插件页面了解更多信息。

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

其他回答

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

GCC来注释一行 GCGC对此不予置评。查看插件页面了解更多信息。

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

有一些很好的插件可以帮助注释/取消注释行。比如书呆子评论家。

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).

完整的文档在这里。

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

:'<,'>s/^/#

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

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

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

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

突出你的区块:

Shift+v

#注释第一列中的行。

-#以同样的方式取消注释。

用ShiftV突出显示你的区块

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

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

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