【问题标题】:Easily comment (C++) code in vim在 vim 中轻松注释 (C++) 代码
【发布时间】:2011-07-23 04:51:59
【问题描述】:

我看过以下问题:

How to comment out a block of Python code in Vim

但这似乎对我不起作用。如何在不借助插件/脚本的情况下轻松注释代码?

【问题讨论】:

  • 它怎么不适合你?这个对我有用。你用 // 吗?

标签: c++ vim


【解决方案1】:

使用ctrl-V 进行块选择,然后点击I,然后点击//[ESC]

或者,使用shift-V 进行基于行的选择,然后键入:s:^://[Enter]。后一部分可以很容易地进入映射。例如:

:vmap // :s:^://<CR>

然后您只需shift-V,选择范围,然后输入//(或您绑定的任何内容)。

【讨论】:

  • ctrl-v 或 ctrl-V 粘贴拉出或删除的文本。我正在使用 VIM 7.3。
  • @Samaursa 你说的是插入模式还是普通模式?在正常模式下 ctrl-V 进入块选择,而在插入模式下(以及您输入文本的其他模式,如:和 /)它会为下一次按键启用“逐字”。听起来您可能有某种改变这种行为的映射。尝试使用:map:nmap' or :imap` 看看发生了什么。
  • 可能正在使用 mswin.vim 脚本。它将^V 和^C 映射到Windows 标准剪切和粘贴。试试 ^Q - (参见 gui_w32.txt - CTRL-V-alternative in the vim help)。
  • @Laurence:谢谢,这很有用:使用 ctrl-V 进行块选择,然后按 I,然后按 //[ESC]。
【解决方案2】:

您可以将此添加到您的 .vimrc 文件中

映射  :s/^/\/\//

然后,当您需要评论某个部分时,只需选择所有行(Shift-V + 移动),然后按 CtrlC

要取消注释,您可以用类似的方式定义

映射  :s/^\/\///

当按下 CtrlU 时,从所选范围的行首删除 //

【讨论】:

  • 我今天在问自己该怎么做。
【解决方案3】:

您可以使用 vim 的 NERD commenter 插件,它支持一大堆语言(我确信 C++ 就是其中之一)。安装后,要评论/取消评论任何行,请使用&lt;Leader&gt;ci。要对文本块执行相同操作,请通过输入 visual 模式选择文本并使用与上述相同的命令。

这里还有其他功能,例如通过在命令前提供计数来注释n 行,在注释前用&lt;Leader&gt;cy 拉动,用&lt;Leader&gt;c$ 注释到行尾,以及许多其他功能,您可以阅读关于链接。我发现这个插件非常有用,是我的“必备”插件之一。

【讨论】:

  • 我完全爱上了“性感”的cmets。虽然当我的同事想要撤消它们时有点烦人...... =)
【解决方案4】:

总是有 #ifdef CHECK_THIS_LATER ... #endif 的优点是不会导致嵌套 C 风格的 cmets 出现问题(如果您使用它们),并且很容易找到并且以后可以取消注释或完全删除。

【讨论】:

    猜你喜欢
    • 2018-10-23
    • 2012-02-05
    • 2011-01-12
    • 2023-03-23
    • 2011-02-03
    • 1970-01-01
    • 1970-01-01
    • 2012-06-14
    • 2013-05-20
    相关资源
    最近更新 更多