【问题标题】:Does Vim have an auto-comment feature based on the file's syntax?Vim 是否具有基于文件语法的自动注释功能?
【发布时间】:2010-11-07 00:58:21
【问题描述】:

我不确定这是否可行,但我对实现这一点很感兴趣。
理想情况下,我想将此功能映射到 SHIFT+CTRL+3

我正在寻找一种方法让 Vim 输入与我正在编辑的文件的语法相对应的注释(单行)。如果有多个单行注释样式,Vim 可以自动选择一个,或者让我选择。如果单行注释有两部分(例如/**/),则按 SHIFT+CTRL+3 第一个time会开始评论,第二次会关闭评论。

示例:

  • 蟒蛇:#
  • JavaScript://
  • C、C++:/**///

我知道有些脚本会为您插入 cmets,但我还没有看到任何脚本会根据文件的语法执行此操作。

【问题讨论】:

    标签: vim syntax autocomplete comments


    【解决方案1】:

    我强烈推荐NERD Commenter

    【讨论】:

      【解决方案2】:

      有点!我不相信 vim 会开箱即用地做到这一点,但您可以安装特定于正在编辑的文件类型的相当智能的注释(使用移动键、视觉线突出显示等)的插件。您可以从 vim.org 获取这些插件,如果您不喜欢它们附带的插件,您应该可以在 .vimrc 文件中制作自己的键映射。

      tComment 很受好评,并且为我工作。

      听说EnhCommentify可能会更好,但我自己没有用过。

      【讨论】:

      • 谢谢!两个看起来都不错。我会在今天某个时候尝试一下。
      【解决方案3】:

      【讨论】:

      • 谢谢。我会将其添加到我的插件列表中以尝试。
      【解决方案4】:

      请参阅:this script,它提供了在可视模式下注释突出显示区域的功能。

      你想在插入模式下开始评论,这样你的函数看起来更像:

      fun CommentLines()
        exe ":s@^@".g:Comment."@g"
      endfun
      

      【讨论】:

        【解决方案5】:

        不完全是您想要的,但效率很高,我想您知道要使用哪个评论。 (所有这些都在命令模式下) 将光标放在要评论的第一行。然后,我们将通过键入设置一个称为 a 的标记(有效名称是 a-z,单个字符)

        ma
        

        将光标放在最后一行,然后通过键入设置一个名为 b 的标记

        mb
        

        然后注释整个块(通过搜索换行符并插入注释字符(注意使用“#”作为搜索分隔符,否则我们必须转义“/”)

        :'a,'bs#^#//#
        

        或者对于 Python:

        :'a,'bs/^/#/
        

        取消注释:

        :'a,'bs#^//##
        

        当我们做行 cmets 时,文件中是否已经有其他 cmets 无关紧要,它们将被保留。

        【讨论】:

          猜你喜欢
          • 2011-09-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-12-16
          • 2012-05-30
          • 1970-01-01
          • 2019-11-06
          相关资源
          最近更新 更多