Eclipse复制/粘贴整行的键盘快捷方式

258

请问在Eclipse中有什么快捷键可以复制/粘贴一整行到新行中,而不需要选中整行吗?

Ctrl+Alt+Down会让我的整个屏幕翻转过来(我在Windows系统上)。有趣的是,这也是Windows->Preferences中指定的快捷键。


6
Eclipse没有这个功能,而IntelliJ做得非常好。如果没有选中任何内容,Ctrl-C将复制整行。此外,Ctrl-D可以像Eclipse的Ctrl-Alt-Down一样复制一行。 - fastcodejava
7
假定你不是吸血鬼或蝙蝠,翻转屏幕可能并不是你经常想要做的事情。删除你的图形配置并接受最佳答案。 - Stephen
1
@fastcodejava 很多人赞扬IntelliJ,但他们仍然使用eclipse。这是因为eclipse是团队的要求吗? - Nick
2
在Eclipse中更改键盘偏好设置,将其他快捷键“ctrl+alt+shit+下箭头”分配给“复制行”操作。 - Akshay Lokur
26个回答

414

Ctrl-Alt-Down: 复制当前行或选定的多行到下方

Ctrl-Alt-Up: 复制当前行或选定的多行到上方

Ctrl-Shift-L: 显示快捷键列表

请参考 Windows/Preference->General->Keys (Windows/首选项->通用->键盘快捷键)。


114
我的整个屏幕都颠倒了过来(我在使用Windows系统)。有趣的是,这个设置可以在Windows/偏好设置中找到。 - Prabhu
100
如果你使用的是英特尔 HD 显卡,很可能这些快捷键已经被英特尔图形工具绑定了。你可以通过通知区域工具禁用热键 -> 图形选项 -> 热键 -> 禁用。之后,我就能使用那些有用的快捷键了。 - ilvez
4
@Imray - 使用Ctrl + D将删除整行。 - KrishPrabakar
19
在Ubuntu操作系统中,由于CTRL+ALT+向下箭头和CTRL+ALT+向上箭头已经被使用(用于工作区切换),所以该快捷键组合无法使用。你可以重新定义“复制行”和“重复行”的快捷键为其他组合。我已经将其重新定义为CTRL+ALT+D向下和CTRL+ALT+U向上。这样就可以完美地使用了。 - Rudy Vissers
1
Mac用户:类比使用“Alt-Command”代替“Ctrl-Shift”。 - gustafbstrom
显示剩余9条评论

71

(在Windows上测试) [根据下面的评论,也适用于Ubuntu、IBM RTC 4 / RSA 9]

  1. 在Eclipse中,连续按 Ctrl+Shift+L两次 (或者使用 Ctrl + 3 快速键,然后输入:Keys > Enter)。
  2. 在“类型筛选文本”(搜索)文本框中,输入Copy Lines
  3. 选择过滤出来的行,右键单击“Binding”字段,然后执行Select All
  4. Ctrl+Shift+V
  5. 点击OK

从现在开始,要复制任意一行,只需按Ctrl+Shift+V


2
我已成功添加了 Ctrl+D 以复制粘贴当前行。谢谢。 - Dashrath
7
我没有使用Ctrl + D,因为在Eclipse中它已经是用于删除行的注册快捷键。 - KrishPrabakar
适用于IBM RTC 4 / RSA 9。 - ThiagoPonte
我在Windows上使用Eclipse Mars,但在过滤时没有得到任何行。 - Ashish Kumar
Ctrl+Shift+V 现在是一个快捷键,可以让你粘贴 MyClass:123 并跳转到第 123 行,并且将堆栈跟踪转化为链接。现在可能过于有用以至于不应该覆盖它。 - Noumenon
显示剩余4条评论

29

你需要关闭翻转屏幕的图形热键。如果你使用的是Windows系统,你需要右键单击Windows桌面,选择“图形属性…”(或类似名称,具体取决于你使用的Windows版本)。这将打开一个屏幕,你可以在这里管理图形和显示选项,寻找可以禁用热键的地方,有时可能被隐藏在“选项和支持”之类的地方。 关闭CTRL+ALT+CTRL+ALT+热键(如果你不使用它们,也可以直接禁用所有图形热键)。


2
它的运行非常顺畅。我正在使用Windows 7。要禁用所有内容,我所做的就是右键单击Windows桌面并选择“图形属性”->选项。然后在结果屏幕的左侧选择“关闭”。这将禁用所有热键组合。我认为没有办法只禁用其中一些,只能全部禁用或不禁用。无论如何,我不需要它们。 - nanosoft
太棒了!我甚至不用重新启动Eclipse,只需禁用Intel HD Graphics快捷键,ctrl-alt-down就可以正常工作了。 - metatron

17

如果你想要复制一行到剪贴板,你也可以使用以下技巧:

Ctrl-Alt-Down 然后 Ctrl-X

缺点是你复制行的文件会变脏。


什么是"脏代码"的含义? - Mafro34
我的意思是“脏”的文件被Eclipse标记为已更改,而实际内容并没有真正更改。 - Renso Lohuis
5
将一行复制到剪贴板,使用 Shift+向下箭头键,然后按 Ctrl-C,可能是一个更好的选择。 - Nick
这需要你不断地从鼠标移动到键盘,然后再移回来。而“复制行”功能的整个意义就在于避免这种情况的发生。 - Mark Jeronimus

14
  1. Ctrl-D 可以删除一行
  2. Ctrl-Z 可以撤销删除,同时高亮整行
  3. Ctrl-X/C 可以剪切或复制整行

与其他用户建议的使用 Ctrl-Alt-Down 加上 Ctrl-X 的方法相比,这样做不会让 Eclipse 认为文件发生了任何变化。这种方法还更快,即使用户在使用 Ctrl-Alt-Down/Up 快捷键时出现旋转屏幕问题也不会有任何问题。因此,没有必要为此重新映射快捷键。

另一种方法是连续按 Alt-Shift-Up 直到整行被选中。当然,如果选择过头了,你也可以用 Alt-Shift-Down 减少选择的内容。


一个不便之处是它实际上复制了2行,原始行加上换行符。 - user1278890
@user1278890 当然,这可能被认为是不便或额外的优势 :) 谢谢你的反馈! - beam022

13

如果你使用的是Windows电脑,并且也在使用STS,可以尝试以下操作:

Ctrl + win + Alt + Down :: 将当前行或选择的行复制到下面

Ctrl + win + Alt + Up :: 将当前行或选择的行复制到上面


11

我已经为Eclipse编写了linecopypaste插件,它模仿了Visual Studio的复制/剪切/粘贴行为。我还找到了copycutcurrentline,它似乎也是这样做的。


10

在我的 Mac 上,缺省设置是 ALT+CMD+Down

你可以通过打开 Eclipse -> Preferences (快捷键为 CMD+,),然后点击 General -> Keys 来更改/查看所有快捷键绑定。


7

Ctrl+Alt+Down可以像Notepad++中的Ctrl+D一样复制当前行到下面。

如果整个屏幕旋转了180度,那么您应该禁用热键设置。

右键单击->图形选项->热键->禁用

enter image description here

现在您可以尝试使用快捷键Ctrl+Alt+Down


5

在MAC上尝试以下操作。

ALT + COMMAND + DOWN

它有效。


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