如何在Eclipse中打开的窗口之间切换?有Ctrl+F6,但它在问我想要哪个,但我想在浏览器或操作系统中的窗口(Cmd/Win+Tab)中切换它,而不需要从列表中选择文件。如何在Eclipse中完成这个简单的事情?
我尝试为事件分配热键:
向前 向前的历史 下一个页面
但这不是我想要的方式。
如何在Eclipse中打开的窗口之间切换?有Ctrl+F6,但它在问我想要哪个,但我想在浏览器或操作系统中的窗口(Cmd/Win+Tab)中切换它,而不需要从列表中选择文件。如何在Eclipse中完成这个简单的事情?
我尝试为事件分配热键:
向前 向前的历史 下一个页面
但这不是我想要的方式。
CTRL+E(用于编辑器列表) CTRL+F6(用于通过列表切换到下一个编辑器) 您可以为“下一个编辑器”键指定另一个快捷方式。
是两个正式的快捷方式,但它们都涉及显示列表。
CTRL+Page Up / CTRL+Page Down可以在编辑器中循环而不显示列表。
最后一组快捷键的有趣之处在于: 它们没有列在要定义的Eclipse Keys快捷方式中。 它们可以从多页编辑器继承,使它们成为特定于操作系统的快捷方式。
关于Mac OS (OSX)上的快捷键,Matt Ball在2011年9月抱怨无法重新映射CTRL+Page Up/CTRL+Page Down:
在OS X中的几乎所有其他选项卡程序中(⌘-左和⌘-右),我都无法翻动打开的选项卡,这让我发疯。
2012年3月,亚瑟回复道:
我刚刚下载了最新版本的Eclipse(3.7+)。在编辑器中,我已经能够将“上一个/下一个选项卡”绑定到(⌘-左和⌘-右),我很确定我以前不能这样做。 我猜他们听到了。 它的工作正如你所期望的那样,标签从左到右,反之亦然,而不是基于历史或诸如此类的无稽之谈。
Matt Ball证实:
哦,哇,选择“编辑Java源代码”真的起作用了! 现在,不幸的是,这意味着如果我导航到一个非java文件(JSP、XML、JS等),我就是SOL。 解决这个问题的方法是为这对“复制命令”,并选择我想要的所有“when”。 到目前为止,它至少在Java和JSP文件上工作得很好。 这是一个主要的PITA设置,但它只是一次性的事情。
您可以在这里尝试他的导出首选项。 一旦导入,您应该看到,对于所有相关类型的文档:
你可以使用ALT+左转到你的上一个标签,或ALT+右转到前进。这个方法使用了像历史一样的选项卡切换,所以它会转到你打开的上一个选项卡,如果你已经“返回”了一次或多次,它就会前进。我知道这有点奇怪,但很管用。你可以通过点击每一个标签来“重置”历史记录。
如果你只是想在当前选项卡和之前的选项卡之间切换,使用CTRL + F6可以来回切换。要导航到历史记录中更早的选项卡,您需要在编辑器窗口打开时使用UP / DOWN键。这适用于Helios (Eclipse 3.6);不确定这是否适用于旧版本的Eclipse。
默认为“Ctrl + F6”。你可以通过Window preferences来改变它。我通常把它改成Ctrl + Tab,就像我们在浏览器和其他东西中切换标签一样。
在操作系统中像Windows一样切换(转到上次有焦点的窗口)
Eclipse中的CTRL- f6,就像ALT- tab(在windows上)一样,会显示一个可用的选项卡/窗口列表(如果您按住CTRL / ALT键),并突出显示当您松开该键时将跳转到的选项卡/窗口。您不必选择窗口。如果您想一次遍历多个选项卡,按住CTRL按钮并点击选项卡按钮。这是相同的行为ALT-TAB在Windows上。
从这个意义上说,eclipse中的CTRL-SHIFT-F6是ALT-SHIFT-TAB的模拟。就我个人而言,我在Eclipse中将这些绑定更改为与Visual Studio类似。即CTRL-TAB和CTRL-SHIFT-TAB,我这样做:
Window > Preferences >一般>键
然后设置“下一个编辑器”=Ctrl+Tab和“上一个编辑器”=Ctrl+Shift+Tab。在设置新的绑定之前,不要忘记单击“解除绑定命令”。
像浏览器一样切换(切换到当前标签右侧的标签)
这是CTRL-PageDown向右,CTRL-PageUp向左。令人沮丧的是,当您到达选项卡列表的末尾(比如最右边的选项卡),然后尝试再次向右移动时,Eclipse不会像大多数浏览器那样循环到第一个选项卡(最左边)。
解决了! !
将方案更改为Microsoft Visual Studio
Window > Preferences >一般>键
寻找scheme下拉菜单
我的eclipse版本:
面向Web开发人员的Eclipse Java EE IDE。
版本:Juno Service Release 1 版本id: 20120920-0800
由于某种原因,我的Eclipse设置被损坏了,所以我不得不手动编辑文件/.plugins/org.eclipse.e4.workbench/workbench.xmi
我以前必须将Ctrl+Tab设置为类似浏览器的选项卡切换,即使在Eclipse首选项中重置所有键绑定也无法摆脱快捷键(它们也不会显示在任何地方)。我打开上面提到的文件并删除与非功能快捷方式相关的<bindings>元素,标记为<tags>type:user</tags>。
右移:Ctrl +页面向下 左边移动:CTRL +页面向上
额外的
获取打开的选项卡列表:Ctrl + F6
超越其他捷径
链接:http://www.shortcutworld.com/en/win/Eclipse.html Pdf: http://eclipse-tools.sourceforge.net/Keyboard_shortcuts_%283.0%29.pdf
你可以在Preferences -> General -> Keys中设置热键(或者只是在Preferences对话框顶部的filter字段中输入“Keys”)。
一旦键部分被选中,找到下一个选项卡和上一个选项卡,通过点击“绑定”字段,然后输入你的热键,为它们分配你自己的热键。
点击Apply或OK完成该过程。
没有人会读我的答案,但不管怎样……如果你使用的是Mac OS X系统,你一定会喜欢在Eclipse中使用多点触摸手势进行历史导航:http://sourceforge.net/apps/mediawiki/eclipsemultitch/
3行AutoHotKey脚本(在Windows上,无论如何):
#IfWinActive ahk_class SWT_Window0
^+Tab::^PgUp
^Tab::^PgDn
把它放在你的启动文件夹中(另存为*。ahk,必须有AutoHotKey安装)和Eclipse选项卡现在将像Chrome或Firefox。
在SLES12机器上,默认情况下可以使用Ctrl+PageUp和Ctrl+PageDown在选项卡之间导航。你可以通过浏览“常规”类别下的“键”部分,从首选项窗口更改这些键。 上面的Victor和VonC很好地解释了这个过程。
我引用VonC的响应,添加了一些东西。
Ctrl+PgUp(PgDn)在当前堆栈中的选项卡之间切换(包括编辑器和视图) Ctrl+E用于在当前堆栈中的选项卡之间切换,使用筛选的列表 Ctrl+F6在编辑器之间切换,无论哪个堆栈 Ctrl+F7在视图之间切换,无论哪个堆栈
另外,有Bug 206299开放使用Ctrl+Tab切换选项卡,而不是Ctrl+PgUp(PgDn)。
因为这会破坏可访问性,所以用户应该为此设置一个首选项。也许在Oomph安装过程中,在欢迎问卷中应该有一个问题。
如果不满意,可以在窗口> Preferences > General > Keys中为自己分配Key Binding。
自定义键绑定序列示例:使用Eclipse RCP在可见模块或编辑器正向之间切换。
你按CTRL + TAB第二次打开 使用RCP Eclipse关闭以前的编辑器。
package rcp_demo.Toolbar;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.ui.IEditorReference;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.handlers.HandlerUtil;
import rcp_demo.Editor.EmployeeEditor;
import rcp_demo.Editor.EmployeeEditorInput;
import rcp_demo.Editor.ProductEditor;
import rcp_demo.Editor.ProductEditorInput;
import rcp_demo.Editor.UserEditor;
import rcp_demo.Editor.UserEditorInput;
public class Forward_Editor extends AbstractHandler{
static String Editor_name; // Active Editor name store in Temporary
static int cnt; // close editor count this variable
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);
IWorkbenchPage page = window.getActivePage();
UserEditorInput std_input = new UserEditorInput();
EmployeeEditorInput emp_input=new EmployeeEditorInput();
ProductEditorInput product_input=new ProductEditorInput();
IEditorReference[] editors = page.getEditorReferences();
//Blank Editor Window to execute..
if(editors.length==0)
{
//First time close editor can open Student_Editor
if(cnt==1 && Editor_name.equals("Student_Editor"))
{
try {
page.openEditor(emp_input, EmployeeEditor.Id);
cnt=1;
Editor_name=page.getActiveEditor().getTitle();
System.out.println("EMP>>Len:: "+editors.length+"..EDi::"+Editor_name);
} catch (PartInitException e) {
e.printStackTrace();
}
}
//First time close editor can open Employee_Editor
else if(cnt==1 && Editor_name.equals("Employee_Editor"))
{
try {
page.openEditor(product_input,ProductEditor.ID);
cnt=1;
Editor_name=page.getActiveEditor().getTitle();
System.out.println("PRO>>Len:: "+editors.length+"..EDi::"+Editor_name);
} catch (PartInitException e) {e.printStackTrace();
}
}
//First time close editor can open Product_Editor
else if(cnt==1 && Editor_name.equals("Product_Editor"))
{
try {
page.openEditor(std_input, UserEditor.ID);
System.out.println("student Editor open");
cnt=1;
Editor_name=page.getActiveEditor().getTitle();
System.out.println("Close::"+Editor_name);
} catch (PartInitException e) {
e.printStackTrace();
}
}
//First Time call // empty editors
else{
try {
page.openEditor(std_input, UserEditor.ID);
System.out.println("student Editor open");
Editor_name=page.getActiveEditor().getTitle();
} catch (PartInitException e) {
e.printStackTrace();
}
}
}//End if condition
//AvtiveEditor(Student_Editor) close to open Employee Editor
else if(page.getActiveEditor().getTitle().equals("Student_Editor"))
{
try {
//page.closeAllEditors(true);
page.closeEditor(page.getActiveEditor(), true);
page.openEditor(emp_input, EmployeeEditor.Id);
cnt=1;
Editor_name=page.getActiveEditor().getTitle();
System.out.println("EMP>>Len:: "+editors.length+"..EDi::"+Editor_name);
} catch (PartInitException e) {
e.printStackTrace();
}
}
//AvtiveEditor(Employee_Editor) close to open Product Editor
else if(page.getActiveEditor().getTitle().equals("Employee_Editor"))
{
try {
page.closeAllEditors(true);
page.openEditor(product_input,ProductEditor.ID);
cnt=1;
Editor_name=page.getActiveEditor().getTitle();
System.out.println("PRO>>Len:: "+editors.length+"..EDi::"+Editor_name);
} catch (PartInitException e) {
e.printStackTrace();
}
}
//AvtiveEditor(Product_Editor) close to open Student Editor
else if(page.getActiveEditor().getTitle().equals("Product_Editor"))
{
try {
page.closeAllEditors(true);
page.openEditor(std_input, UserEditor.ID);
cnt=1;
Editor_name=page.getActiveEditor().getTitle();
System.out.println("stud>>Len:: "+editors.length+"..EDi::"+Editor_name);
} catch (PartInitException e) {
e.printStackTrace();
}
}
//by default open Student Editor
else
{
try {
page.closeAllEditors(true);
page.openEditor(std_input, UserEditor.ID);
cnt=1;
Editor_name=page.getActiveEditor().getTitle();
System.out.println("stud_else>>Len:: "+editors.length+"..EDi::"+Editor_name);
} catch (PartInitException e) {
e.printStackTrace();
}
}
return null;
}
}
>Custom KeyBinding sequence example : <kbd> SHIFT + TAB </kbd> to switch between visilble Modules or Editors **Backword** direction using Eclipse RCP.
package rcp_demo.Toolbar;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.ui.IEditorReference;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.handlers.HandlerUtil;
import rcp_demo.Editor.EmployeeEditor;
import rcp_demo.Editor.EmployeeEditorInput;
import rcp_demo.Editor.ProductEditor;
import rcp_demo.Editor.ProductEditorInput;
import rcp_demo.Editor.UserEditor;
import rcp_demo.Editor.UserEditorInput;
public class Backword_Editor extends AbstractHandler{
static String Editor_name; // Active Editor name store in Temporary
static int cnt;
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);
IWorkbenchPage page = window.getActivePage();
//Three object create in EditorInput
UserEditorInput std_input = new UserEditorInput();
EmployeeEditorInput emp_input=new EmployeeEditorInput();
ProductEditorInput product_input=new ProductEditorInput();
IEditorReference[] editors = page.getEditorReferences();
System.out.println("Length : "+editors.length);
if(editors.length==0)
{
//First time close editor can open Student_Editor
if(cnt==1 && Editor_name.equals("Product_Editor"))
{
try {
page.openEditor(emp_input, EmployeeEditor.Id);
cnt=1;
Editor_name=page.getActiveEditor().getTitle();
System.out.println("EMP>>Len:: "+editors.length+"..EDi::"+Editor_name);
} catch (PartInitException e) {
e.printStackTrace();
}
}
//First time close editor can open Employee_Editor
else if(cnt==1 && Editor_name.equals("Employee_Editor"))
{
try {
page.openEditor(std_input, UserEditor.ID);
cnt=1;
Editor_name=page.getActiveEditor().getTitle();
System.out.println("Student>>Len:: "+editors.length+"..student::"+Editor_name);
} catch (PartInitException e) {
e.printStackTrace();
}
}
//First time close editor can open Product_Editor
else if(cnt==1 && Editor_name.equals("Student_Editor"))
{
try {
page.openEditor(product_input,ProductEditor.ID);
cnt=1;
Editor_name=page.getActiveEditor().getTitle();
System.out.println("PRO>>Len:: "+editors.length+"..EDi::"+Editor_name);
} catch (PartInitException e) {
e.printStackTrace();
}
}
//First Time or empty editors to check this condition
else{
try {
page.openEditor(product_input,ProductEditor.ID);
System.out.println("product Editor open");
} catch (PartInitException e) {
e.printStackTrace();
}
}
}
//AvtiveEditor(Product_Editor) close to open Employee Editor
else if(page.getActiveEditor().getTitle().equals("Product_Editor"))
{
System.out.println("Product:: "+page.getActiveEditor().getTitle());
try {
page.closeAllEditors(true);
page.openEditor(emp_input, EmployeeEditor.Id);
cnt=1;
Editor_name=page.getActiveEditor().getTitle();
System.out.println("Employee Editor open");
} catch (PartInitException e) {
e.printStackTrace();
}
}
//AvtiveEditor(Employee_Editor) close to open Student Editor
else if(page.getActiveEditor().getTitle().equals("Employee_Editor"))
{
System.out.println("Emp:: "+page.getActiveEditor().getTitle());
try {
page.closeAllEditors(true);
page.openEditor(std_input, UserEditor.ID);
cnt=1;
Editor_name=page.getActiveEditor().getTitle();
System.out.println("student Editor open");
} catch (PartInitException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//AvtiveEditor(Student_Editor) close to open Product Editor
else if(page.getActiveEditor().getTitle().equals("Student_Editor"))
{
System.out.println("Product:: "+page.getActiveEditor().getTitle());
try {
page.closeAllEditors(true);
page.openEditor(product_input,ProductEditor.ID);
cnt=1;
Editor_name=page.getActiveEditor().getTitle();
System.out.println("product Editor open");
} catch (PartInitException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//by default open Student Editor
else
{
try {
page.closeAllEditors(true);
page.openEditor(product_input,ProductEditor.ID);
cnt=1;
Editor_name=page.getActiveEditor().getTitle();
System.out.println("product Editor open");
} catch (PartInitException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
}
自定义键绑定序列示例:使用Eclipse RCP在可见模块或编辑器反向方向之间切换SHIFT + TAB。
package rcp_demo.Toolbar;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.ui.IEditorReference;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.handlers.HandlerUtil;
import rcp_demo.Editor.EmployeeEditor;
import rcp_demo.Editor.EmployeeEditorInput;
import rcp_demo.Editor.ProductEditor;
import rcp_demo.Editor.ProductEditorInput;
import rcp_demo.Editor.UserEditor;
import rcp_demo.Editor.UserEditorInput;
public class Backword_Editor extends AbstractHandler{
static String Editor_name; // Active Editor name store in Temporary
static int cnt;
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);
IWorkbenchPage page = window.getActivePage();
//Three object create in EditorInput
UserEditorInput std_input = new UserEditorInput();
EmployeeEditorInput emp_input=new EmployeeEditorInput();
ProductEditorInput product_input=new ProductEditorInput();
IEditorReference[] editors = page.getEditorReferences();
System.out.println("Length : "+editors.length);
if(editors.length==0)
{
//First time close editor can open Student_Editor
if(cnt==1 && Editor_name.equals("Product_Editor"))
{
try {
page.openEditor(emp_input, EmployeeEditor.Id);
cnt=1;
Editor_name=page.getActiveEditor().getTitle();
System.out.println("EMP>>Len:: "+editors.length+"..EDi::"+Editor_name);
} catch (PartInitException e) {
e.printStackTrace();
}
}
//First time close editor can open Employee_Editor
else if(cnt==1 && Editor_name.equals("Employee_Editor"))
{
try {
page.openEditor(std_input, UserEditor.ID);
cnt=1;
Editor_name=page.getActiveEditor().getTitle();
System.out.println("Student>>Len:: "+editors.length+"..student::"+Editor_name);
} catch (PartInitException e) {
e.printStackTrace();
}
}
//First time close editor can open Product_Editor
else if(cnt==1 && Editor_name.equals("Student_Editor"))
{
try {
page.openEditor(product_input,ProductEditor.ID);
cnt=1;
Editor_name=page.getActiveEditor().getTitle();
System.out.println("PRO>>Len:: "+editors.length+"..EDi::"+Editor_name);
} catch (PartInitException e) {
e.printStackTrace();
}
}
//First Time or empty editors to check this condition
else{
try {
page.openEditor(product_input,ProductEditor.ID);
System.out.println("product Editor open");
} catch (PartInitException e) {
e.printStackTrace();
}
}
}
//AvtiveEditor(Product_Editor) close to open Employee Editor
else if(page.getActiveEditor().getTitle().equals("Product_Editor"))
{
System.out.println("Product:: "+page.getActiveEditor().getTitle());
try {
page.closeAllEditors(true);
page.openEditor(emp_input, EmployeeEditor.Id);
cnt=1;
Editor_name=page.getActiveEditor().getTitle();
System.out.println("Employee Editor open");
} catch (PartInitException e) {
e.printStackTrace();
}
}
//AvtiveEditor(Employee_Editor) close to open Student Editor
else if(page.getActiveEditor().getTitle().equals("Employee_Editor"))
{
System.out.println("Emp:: "+page.getActiveEditor().getTitle());
try {
page.closeAllEditors(true);
page.openEditor(std_input, UserEditor.ID);
cnt=1;
Editor_name=page.getActiveEditor().getTitle();
System.out.println("student Editor open");
} catch (PartInitException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//AvtiveEditor(Student_Editor) close to open Product Editor
else if(page.getActiveEditor().getTitle().equals("Student_Editor"))
{
System.out.println("Product:: "+page.getActiveEditor().getTitle());
try {
page.closeAllEditors(true);
page.openEditor(product_input,ProductEditor.ID);
cnt=1;
Editor_name=page.getActiveEditor().getTitle();
System.out.println("product Editor open");
} catch (PartInitException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//by default open Student Editor
else
{
try {
page.closeAllEditors(true);
page.openEditor(product_input,ProductEditor.ID);
cnt=1;
Editor_name=page.getActiveEditor().getTitle();
System.out.println("product Editor open");
} catch (PartInitException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
}
键序列
M1表示CTRL
M2表示SHIFT
plugin . xml
<extension point="org.eclipse.ui.commands">
<command
defaultHandler="rcp_demo.Toolbar.Forward_Editor"
id="RCP_Demo.Toolbar.Forward_editor_open_cmd"
name="Forward_Editor">
</command>
<command
defaultHandler="rcp_demo.Toolbar.Backword_Editor"
id="RCP_Demo.Toolbar.backwards_editor_open_cmd"
name="Backword_Editor">
</command>
</extension>
<extension point="org.eclipse.ui.bindings">
<key
commandId="RCP_Demo.Toolbar.Forward_editor_open_cmd"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
sequence="M1+TAB">
</key>
<key
commandId="RCP_Demo.Toolbar.backwards_editor_open_cmd"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
sequence="M2+TAB">
</key>
</extension>
从右向左:ctrl+ shift + 9或ctrl+ shift + Page Up或ctrl+ Page Up
从左到右:ctrl + shift + 3或ctrl + shift + Page Down或ctrl + Page Down
出于某种原因,仅仅添加一个新的绑定似乎不起作用(日食2021-06)。
而不是:
使用复制命令克隆下一个标签和上一个标签 将“When”更改为“In Windows” 添加新的绑定 申请及关闭
@Gillfish在另一个答案的评论中提到了这一点,但我认为最好明确地提出解决方案。
在2022-03之前的Eclipse版本中,曾经使用CTRL + Tab在编辑器之间按LRU顺序切换,与CTRL + E相同-我相信这是相同的功能。从2022年版本开始,这不再是CTRL + Tab用于移动到不同的窗格(即从编辑器移动到底部窗格,或从底部窗格移动到其中一个侧栏)的情况。
在任何一种情况下,CTRL + Tab都没有显示为Windows->首选项->通用->键配置对话框中使用的绑定-它似乎是硬编码的。
这真的让我很恼火,因为我非常习惯使用CTRL + Tab在多选项卡应用程序中切换选项卡,无论如何,这是一个比CTRL + E更容易的快捷方式。
我的解决方案是进入键配置对话框,将“快速切换编辑器”快捷键从CTRL + E替换为CTRL + Tab。
“快速切换编辑器”基本上是我需要的-按一次,快速释放,你回到以前使用的编辑器;按一次,按住修改器-你会得到一个菜单,你可以导航到不同的编辑器在LRU的顺序。