Eclipse热键:如何切换标签?

如何在Eclipse中打开的窗口之间切换? 有Ctrl + F6 ,但它是问我想要哪一个,但我想在浏览器或操作系统( Cmd / Win + Tab )窗口中切换而不从列表中select文件。 如何在Eclipse中做这个简单的事情?

我试图为事件分配热键:

  • 前锋
  • 前进的历史
  • 下一页

但是它不能以我想要的方式工作。

  • CTRL + E (用于编辑列表)
  • CTRL + F6 (通过列表切换到下一个编辑器)
    您可以为“下一个编辑器”键分配另一个快捷方式。

是两个正式的捷径,但它们都涉及一个正在显示的列表。

CTRL + Page Up / CTRL + Page Down可循环编辑器而不显示列表。

最后一组快捷方式有趣的是:
他们没有列在要定义的Eclipse Keys快捷键中。
它们可以从多页面编辑器inheritance,使它们成为操作系统特定的快捷方式


关于Mac OS(OSX)上的快捷方式, Matt Ball在2011年9月抱怨无法重新映射CTRL + Page Up / CTRL + Page Down

它使我疯狂不能翻开打开的标签,因为我可以在OS X中的几乎所有其他选项卡式程序( )。

那么在2012年3月呢, Arthur回答说:

,我刚刚下载了最新版本的Eclipse(3.7+)。 我已经能够在编辑器中将“上一个/下一个选项卡”绑定到( 左键右键 ),我很确定我以前不能这样做。
所以我想他们听到了你。
它的工作方式和你所期望的一样,标签从左到右,反之亦然,而不是历史的基础上或一些这样的废话。

马特·鲍尔证实:

哦,哇,select“编辑Java源码”实际上工作
现在,不幸的是,这意味着我是SOL,如果我浏览到一个非Java文件(JSP,XML,JS等)。
解决这个问题的方法是为这对“复制命令”,并select我想要的所有“哗哗”
到目前为止,至less对于Java和JSP文件来说,这是至关重要的。
这是build立一个主要的PITA,但这只是一次性的事情。

他的出口偏好在这里可供您尝试。
一旦导入,你应该看到,所有相关types的文件:

Mac Os键绑定

如果您转到“首选项”(例如,窗口→首选项)并查看“常规”→“密钥”

然后search“下一个选项卡”和“上一个选项卡”,您可以重新映射它们。

重新绑定之前,Eclipse Preferences中的Next Tab命令

在操作系统中像Windows一样切换( 转到最后有焦点的窗口

在Eclipse中的CTRLF6 ,就像ALTTAB (在窗口上)一样,打开一个可用的标签/窗口列表(如果你保持按住CTRL / ALT键),并突出显示当你释放这个键。 您不必select窗口。 如果要一次遍历多个选项卡,请按住Ctrl键并点击TABbutton。 这与Windows上的ALTTAB具有相同的行为。

在这个意义上,eclipse中的CTRLSHIFTF6ALTSHIFTTAB模拟。 就我个人而言,我在Eclipse中将这些绑定更改为Visual Studio。 即CTRLTABCTRLSHIFTTAB ,我这样做:

窗口>首选项>常规>键

然后设置“Next Editor”= Ctrl + Tab和“Previous Editor”= Ctrl + Shift + Tab 。 在设置新的绑定之前,不要忘记单击“取消绑定命令”。

像浏览器切换( 转到当前标签右侧的标签

这是CTRLPageDown去的权利, CTRLPageUp去左。 令人沮丧的是,当你到达标签列表的末尾时(比如右手边的标签),然后再次尝试,Eclipse不会像大多数浏览器一样循环到第一个标签页(最左边)。

您可以使用ALT + 左转到您的上一个选项卡,或者使用ALT + 右转到转发。 但是,这种方法使用了历史logging这样的标签切换,所以它会转到之前打开的标签页,并且如果您已经“返回”了一次或多次,就会转发。 有点奇怪,我知道,但它的作品。 您可以随时通过点击每个标签来“重置”历史logging。

  • Right移动: Ctrl + 页面向下
  • Left移动: CTRL + 向上翻页

额外

  • 获取打开的标签列表: Ctrl + F6

Eclipse别人短切

  • 链接: http : //www.shortcutworld.com/en/win/Eclipse.html
  • Pdf: http : //eclipse-tools.sourceforge.net/Keyboard_shortcuts_%283.0%29.pdf

CTRL + F6是很好用的。 如果你想切换到下一个/上一个标签,你需要做CTRL + Page Down / CTRL + Page Up

默认是Ctrl + F6 。 您可以通过转到窗口首选项来更改它。 我通常将其更改为Ctrl + Tab ,这与我们在切换浏览器中的选项卡和其他内容时所使用的相同。

没有人会阅读我的答案,但无论如何…如果你在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一样工作。

自定义KeyBinding序列示例:使用Eclipse RCP在CTRL + TAB之间切换可粘性模块或编辑器正向

您第二次按CTRL + TAB以打开另一个编辑器并使用RCP Eclipseclosures以前的编辑器。

 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; } } 

自定义KeyBinding序列示例: SHIFT + TAB使用Eclipse RCP在visilble模块或编辑器后退方向之间切换。

 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> 

解决了!!

将scheme更改为Microsoft Visual Studio

窗口>首选项>常规>键

寻找计划下拉菜单

我的eclipse版本:

适用于Web开发人员的Eclipse Java EE IDE。

版本:Juno Service Release 1版本号:20120920-0800

在窗口上,如果你有一个5键鼠标,你可以使用前进和后退代替ALT +左ALT +右

一种方法是使用VI插件 ,然后你只需要:n(和:N)在文件之间。

我就是做这个的。

您可以在首选项 – >常规 – >键中设置热键(或者只需在“首选项”对话框顶部的filter字段中键入“键”。

一旦select了键部分,find下一个选项卡和上一个选项卡,并通过单击“绑定”字段,然后键入您的热键分配给自己的热键。

点击应用或确定完成该过程。

我引用VonC的回应,join一些东西。

  • Ctrl + PgUpPgDn )在当前堆栈中的选项卡(编辑器和视图)之间切换
  • Ctrl + E使用过滤列表在当前堆栈中的选项卡之间切换
  • Ctrl + F6可以在编辑器之间切换,不pipe是哪个堆栈
  • Ctrl + F7切换视图,不pipe是哪个堆栈

另外,还有Bug 206299打开请求使用Ctrl + Tab切换标签而不是Ctrl + PgUpPgDn )。

  • 因为这将打破可访问性,用户应该为此设置偏好。 在Oomph安装期间,欢迎问卷中应该有一个问题。

如果不满意,可以从“ 窗口”>“首选项”>“常规”>“键”为自己分配键绑定。

快捷键回到上一个标签

Alt + LeftArrow返回。

出于某种原因,我的Eclipse设置已损坏,所以我不得不手动编辑文件/.plugins/org.eclipse.e4.workbench/workbench.xmi

我必须事先将Ctrl + Tab设置为类似浏览器的选项卡切换,甚至在Eclipse首选项中重置所有的键绑定也不会摆脱快捷键(它们不会显示在任何地方)。 我打开了上面提到的文件,并删除了标记为<tags>type:user</tags>的非function性快捷方式的<bindings>元素。

如果您只想在当前和之前的选项卡之间进行切换,使用CTRL + F6会来回切换。 要导航到历史logging的标签,需要在“编辑器”窗口处于打开状态时使用“ 向上 / 向下”键。 这适用于Helios(Eclipse 3.6); 不确定这是否适用于旧版本的Eclipse。

在SLES12机器上,默认情况下,您可以使用Ctrl + PageUpCtrl + PageDown在选项卡之间导航。 您可以随时通过浏览“常规”类别下的“键”部分来从“首选项”窗口中更改这些键。 上面的Victor和VonC很好地解释了这个过程。

从右到左: ctrl + shift + 9ctrl + shift + Page Upctrl + Page Up

从左到右: Ctrl + Shift + 3Ctrl + Shift + Page DownCtrl + Page Down

按住CTRL ,然后按F6,直到到达所需的编辑器,然后释放。 用户界面不如窗口select漂亮,但function相同。