代码之家  ›  专栏  ›  技术社区  ›  Ohad Eytan

将Java行注释自动转换成块注释

  •  -1
  • Ohad Eytan  · 技术社区  · 7 年前

    我有一组Java文件,其中有多个行注释序列:

    // blah blah blah
    // blah blah blah 
    // blah blah blah 
    

    我要将其转换为带有额外的开始行和结束行的块注释:

    /**
     * blah blah blah 
     * blah blah blah 
     * blah blah blah 
     */
    

    对于所有的评论,有没有什么简单的自动处理方法?最好是与 Vim Eclipse ? 当然,我可以写自己的脚本,但我希望有一个更简单的解决方案。

    4 回复  |  直到 7 年前
        1
  •  2
  •   Ingo Karkat    7 年前

    为了 vim 您可以使用或多或少复杂的宏轻松完成此操作(取决于宏的健壮性,它是否需要支持带计数的正常模式、可视模式,甚至自动调整现有注释的范围)。

    但是有几个注释插件做得很好,它们是通用的(并且通常是可扩展的),因此它们适用于任何文件类型:

    对于第一个插件,您需要应用两个映射:第一个 3<Leader>cu 取消注释(3行),然后 3<Leader>cs 使用“性感”的多部分注释分隔符。这几乎可以满足你的需要;你只需要插入另一个 * 对于JavaDoc注释:

    /*
     * blah blah blah
     * blah blah blah 
     * blah blah blah
     */
    

    自动化

    要定位行注释的后续行(此处假设从第一列开始),可以使用 :help :range . 使范围从下一个注释行开始,并使其继续,直到下一个不以行注释开始或为空的行为止。为了开发这个,使用 :print 命令很方便:

    :/^\/\/ /;/\%(^$\|^[^\/]\)/-1print
    

    一旦成功,我们就可以触发 取消批注 映射(通过 :normal ):

    :/^\/\/ /;/\%(^$\|^[^\/]\)/-1normal \cu
    

    这将分别取消对每行的注释;对于(块)注释,我们需要整体处理块,并传递 [count] 到地图。幸运的是, 更改标记 现在将整个未注释的块定界,这样我们可以使用它们:

    • 导航回起始位置
    • 计算后续行数
    • 触发 性感评论 映射
    :execute line("'[") | execute 'normal' (line("']") - line("'[") + 1) . '\cs'
    

    如果不是最后一步,则可以通过 :global . 相反,您需要反复触发上述步骤,直到到达缓冲区的末尾。一 递归宏 可以为你做这个。然后,您可以将该宏应用于多个文件,方法是 :bufdo :argdo . 但是你必须非常确定这个宏是健壮的,并且不会对某些角落的情况造成破坏。所以,这是一个权衡,取决于你面对的事件的数量。

        2
  •  0
  •   E. ISCAN    7 年前

    对。有一个简单的方法。您可以使用以下快捷方式…

    控制+/
    添加/ 去除 当前行的行注释(//)。

    Ctrl+Shift+/
    在块注释中换行(/**/)。

        3
  •  0
  •   Jitesh Golatkar    7 年前

    在Eclipse中,您可以通过以下方式完成此操作: 选择要注释的行和 Ctrl + Shift + / -(生成块行注释)

    Ctrl + Shift + F (运行Eclipse格式化程序)。 运行Eclipse格式化程序将添加 * 在每一行评论上。

    要删除注释, Ctrl + Shift + \

        4
  •  -1
  •   Isdeniel    7 年前

    您可以选择多行并按 Ctrl + / 地方 / 在所有行。

    推荐文章