如何在vim中使用NERD Commenter——如何使用<Leader>键

70
我找到了适用于Vim的NERD注释插件,但我不理解文档说明。假设我想要在C/C++中注释一些代码,该怎么办?
code line 1  
code line 2
变得
/*
code line 1  
code line 2  
*/ 

我看到其他帖子有涉及此问题,但说实话我不知道NERD commenter documentation中的<leader>是什么。当我尝试在这个其他帖子中使用接受的答案时,我最终会在所选行上执行更改命令。那么<leader>是什么,并且逐步来说,如何对/* */进行注释?


2
此外,更多关于 leader 键的信息,请参阅以下链接:http://learnvimscriptthehardway.stevelosh.com/chapters/06.html - greduan
1
@SantoshKumar 已回滚:您的编辑使其成为 https://dev59.com/NXI-5IYBdhLWcg3wm5zN 的副本!还请注意最后一句话:“逐步说明如何使用 /* */ 对行进行注释?” - glts
4个回答

72

尝试使用内置帮助,它非常棒。:help <Leader> 可以带您到相关文档。这只是一个未使用的键的标识符(默认为 \,但许多人将其更改为 ,),建议用于启动任何自定义映射。

NERD_commenter 定义了<Leader>cc 映射,因此您需要按下(一个接一个):\ C C


5
注意:您不需要按住 <Leader> 键,只需像按其他键一样按下它,然后松开。可以与其他键一起按的唯一修改键是 Shift、Ctrl 和 Alt。 - Ingo Karkat

31

你的键盘可能存在问题

在许多非英语键盘布局中,反斜杠\只能通过AltGr组合键访问。这使得默认设置的<Leader>字符对于这些非英语键盘用户而言不太实用。

此外,<Leader>键组合受到默认的1000ms超时限制。这可以通过命令行右侧的<Leader>键消失来观察到。

因此,非英语键盘用户需要快速打字才能使</kbd>cc正常工作。否则会导致意外的cc换行。

下面是一个德语键盘布局示例,其中带有反斜杠的键位于顶部第三个从右边开始的位置: German keyboard layout

#解决方案 建议非英语键盘用户将<Leader>键从\字符更改为更易访问的,键。 Vim初学者也应该考虑使用稍长的1500ms超时限制。以下是需要添加到~/.vimrc文件中的内容:

let mapleader=","
set timeout timeoutlen=1500

最后一个警告:这些更改只在完全退出 Vim 后才会生效。使用 :source $MYVIMRC 不起作用!

完成上述步骤后,现在可以使用 NERD Commenter 的 ,cc 进行注释。


这个也让我费了一些脑筋才找到! - Serge Stroobandt
2
感谢您提供的信息,需要退出 Vim 才能使更改生效。 - Curious2learn
"在相反方向重复上一个 f 操作" - Fuseteam

7
如何使用 /* */ 进行注释?
根据文档所述:
[count]<leader>cm |NERDComMinimalComment| 
Comments the given lines using only one set of multipart delimiters. 

因此,只需使用

  • \ c m (如果您的<leader>\),或者
  • , c m (如果您的<leader>,

1

@IngoKarkatNote: 你不需要按住键,只需像按其他键一样按下并释放即可。

这是针对原问题完全错误的建议!

使用NerdCommenter时,您必须按住<leader>键。否则,就会像OP发现的那样,只会激活“更改”模式。


3
不是这样的。对我来说,快速连按键是奏效的。 - Hindol
2
不是真的,如果你快速连续按下按键,程序会出现问题。 - Fuseteam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接