在Eclipse中取消注释多行代码

14

是的,这可能是Eclipse注释/取消注释快捷键的重复问题,但那里给出的答案对我的情况无效。

我已经格式化了Java代码,当我选择并使用ctrl + shift + /时,它看起来像

/*
 * if (isKilled) { Log.i("TAG", "Killed"); }
 */

但是当我使用 ctrl + shift + / 对上面选择的代码进行注释时,Eclipse没有取消我的代码注释。

我尝试了 ctrl + shift + \ctrl + shift + /ctrl + \。都没有用。 即使被注释掉的代码很长,我仍然需要手动删除星号。

应该如何操作? 我也希望星号被删除。


可能是Eclipse注释/取消注释快捷键?的重复问题。 - 1ac0
1
据我所知,现在越来越倾向于使用//注释而不是/**/注释。通过Ctrl + Shift + C可以轻松地将//注释切换为多行注释。我猜这种IDE支持的简单性是许多开发人员更喜欢//注释的原因。 - noncom
是的,// 可能很容易。但是 /***/ 有没有办法呢? - Sundeep1501
1
截至2017年,目前还没有解决方案! - Sankalp
这是我找到的迄今为止最好的解决方案 https://dev59.com/pG445IYBdhLWcg3w_PG3#34553134。 - nantitv
9个回答

10

尝试使用Ctrl+Shift+C。 这应该可以工作。


检查您的键位映射。转到工具->选项,然后选择键位映射选项卡。在搜索栏中输入“comment”。 - Pratik Roy
它说切换注释 - Java源代码。我尝试过,但对于*ed多行代码无效。 - Sundeep1501
当注释具有不同级别(// ////等)且代码为多行时,无法正常工作。 - Sonique

8

对于我来说,删除块注释 (Ctrl + Shift + \) 可以实现目的,但仅当注释的第一行有代码时才有效,因此您的示例无法起作用,但是:

/* if (isKilled) { Log.i("TAG", "Killed"); }
 */

能够工作。


真的,但我正在寻找多行。 - Sundeep1501
1
这是多行注释,你必须在注释的第一行放置代码。 - greg-449
1
我尝试了第一行的代码。它可以删除/**/,但无法删除第二行中的星号(*)。 - Sundeep1501
是的,它只能与“添加块注释”插入的注释完全匹配才能正常工作 - 这不会在中间行添加*。 - greg-449
1
如果我们使用 /* */ 对代码进行注释格式化,Eclipse 编辑器会为中间行添加 *。 - Sundeep1501
这是我多年来一直在寻找的简单答案 - 很好 - Tom Bunting

5
在Eclipse中,添加或删除单行注释可以使用快捷键CNTRL+SHIFT+C。
示例:
// if(i==1){
// ...
// }

添加和删除多行注释:

CNTRL+SHIFT+/ --> 添加 CNTRL+SHIFT+\ --> 删除

示例:

/* if(i==1){
   ...
}
*/

2
这个问题的一个部分解决方案是禁用块注释格式化。如果这样做,Eclipse在对代码进行格式化时不会为多行块注释中的中间行添加*,因此您可以通过Ctrl+Shift+\或删除/**/来删除这些块注释。
在Eclipse for PHP(Windows)中,在主菜单窗口->首选项->PHP->代码风格->格式化程序->编辑->注释中取消选中“启用块注释格式化”。
在其他版本的Eclipse中,此选项也存在,但路径可能不同。

1
基本上,当在eclipse中启用“保存操作”时,就会出现这种情况。当您使用“Crtl + Shift + /”或自己输入来添加块注释时:
/*
 line 1
 line 2
 line 3
*/

并保存它,编辑器会将其格式化为


 /*
 * line 1
 * line 2
 * line 3
 */

每个中间行都会添加*。这导致在这些行之前使用"Crtl + Shift + \"无法删除这些*

解决方案如下:

1- 使用"Crtl + Shift + C"进行注释和取消注释(切换)。最好只用一个。

2- 如果您不想使用"Crtl + Shift + C",这实际上是一种hack方法。当您保存时,编辑器会将代码格式化为:

 /*
  * line 1
  * line 2
  * line 3
  */

您可以使用撤销功能 (Ctrl + Z)。编辑器会将代码恢复到之前的状态,但代码仍然已保存,例如:

/*
 line 1
 line 2
 line 3
*/

现在,您可以在需要时使用“Crtl + Shift + \”取消注释。星号将不会困扰您 :)

1
我一直有这个问题。一直认为Ctrl + Shift + C是正确的注释方式,但它从未“取消注释”。

相反,只需改用Ctrl + /(也适用于组),或者如果您喜欢,则可以使用Ctrl + Shift + / 来使用/***/。

它从未失败过,请不要再感到压力了。


0

这可能不是很容易。但它仍然有效! 我使用 Ctrl+F 来获取查找和替换窗口,勾选正则表达式复选框,并使用此正则表达式 ^(\s*)/?\*/?(.*)$\1\2 在替换部分中,然后点击“全部替换”。 如果您只想取消注释一个被注释的代码部分,可以选择该区域并在范围部分中使用单选按钮“选定行”。

正则表达式解析 ^ #表示行的开头。为了避免匹配代码其他部分中的 *。 ( #第一组。为了保留缩进 \s* #选择制表符/空格。缩进 ) #第一组结束 /? 匹配注释第一行中的斜杠 \* 匹配注释中的星号(Asterik)。反斜杠用作分隔符 /? 匹配注释的最后一行中的斜杠 ( #第二组。为了保留缩进 .* #要取消注释的实际代码 ) #第二组结束 $ #直到行末

希望这有所帮助!


0
  1. 选择您想要注释/取消注释的代码行。

  2. 然后按“Ctrl + /”进行注释/取消注释。


-1

只需将*替换为空格并删除多余的斜杠。


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