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

时间:2018-09-17 16:04:03

标签: java eclipse vim comments

我有一堆带有多个行注释序列的java文件:

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

我想将其转换为带有额外的开头和结尾行的块注释:

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

有没有简单的方法可以自动处理所有评论?最好使用VimEclipse? 当然,我可以编写自己的脚本,但我希望有一个更简单的解决方案。

4 个答案:

答案 0 :(得分:2)

对于 Vim ,您可以使用或多或少复杂的宏轻松完成此操作(取决于它的健壮性,是否需要支持带有计数的普通模式,可视模式或甚至自动调整现有评论的范围。

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

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

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

自动化

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

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

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

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

这分别注释了每一行;对于(块)注释,我们需要将块作为一个整体进行处理,将[count]传递给映射。幸运的是,现在更改标记界定了整个未注释的块,因此我们可以将它们用于:

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

如果不是最后一步,则可以通过:global将更改应用于整个文件。相反,您需要重复触发上述步骤,直到到达缓冲区末尾。 递归宏可以为您完成此操作。然后,您可以通过:bufdo:argdo将该宏应用于多个文件。但是您必须非常确定宏是可靠的,并且在某些极端情况下不会造成严重破坏。因此,这是一个权衡取舍,具体取决于您面临的情况。

答案 1 :(得分:0)

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

Ctrl + /
从当前行添加/ 删除行注释(//…)。

Ctrl + Shift + /
将所选的行括在块注释(/ *…* /)中。

答案 2 :(得分:0)

在Eclipse中,您可以通过以下方法进行此操作: 选择要注释的行和#!/usr/bin/expect set oldIP "[lrange $argv 0 0]" set newIP "[lrange $argv 1 1]" set password "123..." set admin "User" set host localhost spawn ssh '$admin'@'$oldIP' expect -exact "Password: " sleep 3 send -- "$password\r" expect -exact "$host:~ user# " send -- "rsync -azvH --numeric-ids -W --force /path/ '$newIP':/path/" expect -exact "Password: " sleep 3 send -- "$password\r" sleep 1 send -- quit\n" -(生成块行注释)

Ctrl + Shift + /(运行Eclipse格式化程序)。 运行eclipse格式化程序将在注释的每一行上添加Ctrl + Shift + F

要删除评论,请*

答案 3 :(得分:-1)

您可以选择多行,然后在所有行上按Ctrl + /放置/