![](/img/trans.png)
[英]Eclipse HotKey: How to switch between indenting levels based with spaces?
[英]Eclipse HotKey: how to switch between tabs?
如何在 Eclipse 打開的 windows 之間切換? 有Ctrl + F6 ,但它問我想要哪個,但我想像瀏覽器中的選項卡或操作系統中的 window ( Cmd / Win + Tab ) 一樣切換它,而不需要從列表中選擇文件。 如何在 Eclipse 中完成這件簡單的事情?
我試圖為事件分配熱鍵:
但它不按我想要的方式工作。
是兩個官方快捷方式,但它們都涉及正在顯示的列表。
CTRL + Page Up / CTRL + Page Down可以在不顯示列表的情況下循環瀏覽編輯器。
最后一組快捷方式的有趣之處在於:
它們未列在要定義的 Eclipse Keys 快捷方式中。
它們可以從多頁編輯器繼承,使它們成為操作系統特定的快捷方式。
關於 Mac OS (OSX) 上的快捷方式, Matt Ball在 2011 年 9 月抱怨無法重新映射CTRL + Page Up / CTRL + Page Down :
它讓我發瘋,無法像在 OS X 中的幾乎所有其他選項卡式程序( ⌘ - Left和⌘ - Right )中那樣翻閱打開的選項卡。
好吧,在 2012 年 3 月,亞瑟回答說:
,我剛剛下載了最新版本的 Eclipse (3.7+)。 在編輯器中時,我已經能夠將“上一個/下一個選項卡”綁定到( ⌘ - Left和⌘ - Right ),我很確定我以前做不到。
所以我猜他們聽到了你的聲音。
它按您的預期工作,標簽從左到右,反之亦然,而不是基於歷史或類似的廢話。
馬特鮑爾確認:
哦,哇,選擇“編輯 Java 源代碼”確實有效!
現在,不幸的是,這意味着如果我導航到非 Java 文件(JSP、XML、JS 等),我就是 SOL。
對此的解決方法是為此對“復制命令”,並選擇我想要的所有“時間” 。
到目前為止,它至少對 Java 和 JSP 文件工作得很好。
這是一個主要的 PITA 設置,但這只是一次性的事情。
他導出的首選項可在此處獲得,供您試用。
導入后,您應該會看到所有相關類型的文檔:
如果您轉到首選項(例如窗口→首選項)並查看常規→鍵
然后搜索“下一個標簽”和“上一個標簽”,您可以重新映射它們。
CTRL - F6在 Eclipse 中,就像ALT - TAB (在 Windows 上)一樣,會顯示可用的選項卡/窗口列表(如果您按住 CTRL / ALT鍵)並突出顯示當您松開此鍵時將跳轉到的那個. 您不必選擇窗口。 如果您想一次遍歷多個選項卡,請按住CTRL按鈕並點擊TAB按鈕。 這與 Windows 上的ALT - TAB 的行為相同。
從這個意義上說,Eclipse 中的CTRL - SHIFT - F6是ALT - SHIFT - TAB模擬。 就個人而言,我將 Eclipse 中的這些綁定更改為類似於 Visual Studio。 即CTRL - TAB和CTRL - SHIFT - TAB和我這樣做:
窗口>首選項>常規>鍵
然后設置 "Next Editor"= Ctrl + Tab和 "Previous Editor"= Ctrl + Shift + Tab 。 在設置新綁定之前,不要忘記單擊“取消綁定命令”。
這是CTRL - PageDown向右走, CTRL - PageUp向左走。 令人沮喪的是,當您到達選項卡列表的末尾(比如最右側的選項卡)然后嘗試再次向右移動時,Eclipse 不會像大多數瀏覽器那樣循環到第一個選項卡(最左側)。
您可以使用ALT + Left轉到上一個選項卡,或使用ALT + Right前進。 但是,此方法使用類似於歷史記錄的選項卡切換,因此它會轉到您打開的上一個選項卡,如果您已經“返回”一次或多次,則前進。 有點奇怪,我知道,但它有效。 您始終可以通過單擊每個選項卡一次來“重置”歷史記錄。
Right
移動: Ctrl + page DownLeft
移動: CTRL +向上翻頁額外的
Eclipse 其他快捷方式
CTRL + F6很好用。 如果要切換到下一個/上一個選項卡,則需要執行CTRL + Page Down / CTRL + Page Up 。
默認為Ctrl + F6 。 您可以通過轉到Window 首選項來更改它。 我通常將其更改為Ctrl + Tab ,這與我們在瀏覽器和其他東西中切換選項卡時使用的相同。
自定義鍵綁定序列示例: CTRL + TAB使用 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;
}
}
自定義 KeyBinding 序列示例: SHIFT + TAB使用 Eclipse RCP 在可見模塊或編輯器Backword方向之間切換。
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
插件文件
<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>
3 行 AutoHotKey 腳本(無論如何在 Windows 上):
#IfWinActive ahk_class SWT_Window0
^+Tab::^PgUp
^Tab::^PgDn
將它放在您的啟動文件夾中(另存為 *.ahk,必須安裝 AutoHotKey),Eclipse 選項卡現在可以像 Chrome 或 Firefox 一樣工作。
返回上一個選項卡的快捷鍵
Alt + LeftArrow返回。
解決了!!
將方案更改為 Microsoft Visual Studio
窗口>首選項>常規>鍵
查找 Schemes 下拉菜單
我的日食版本:
面向 Web 開發人員的 Eclipse Java EE IDE。
版本:Juno Service Release 1 版本號:20120920-0800
沒有人會讀我的答案,但無論如何......如果你在 Mac OS X 上,你會喜歡 Eclipse 中用於歷史導航的多點觸控手勢: http : //sourceforge.net/apps/mediawiki/eclipsemultitch/
在 Windows 上,如果您有 5 鍵鼠標,則可以使用 forward 和 back 代替ALT+Left和ALT+Right 。
由於某種原因,我的 Eclipse 設置已損壞,因此我不得不手動編輯文件/.plugins/org.eclipse.e4.workbench/workbench.xmi
我之前一定已經將Ctrl + Tab設置為類似瀏覽器的選項卡切換,即使在 Eclipse 首選項中重置所有鍵綁定也不會擺脫快捷方式(它們也沒有顯示在任何地方)。 我打開了上面提到的文件並刪除了用<tags>type:user</tags>
與不起作用的快捷方式相關的<bindings>
元素。
您可以在 Preferences -> General -> Keys 中設置熱鍵(或者在 Preferences 對話框頂部的過濾器字段中輸入“keys”。
選擇“鍵”部分后,找到“下一個選項卡”和“上一個選項卡”並通過單擊“綁定”字段然后鍵入您的熱鍵為它們分配您自己的熱鍵。
點擊應用或確定以完成該過程。
一種方法是使用VI Plugin ,然后您只需執行 :n (和 :N)即可在文件之間切換。
我就是做這個的。
我引用 VonC 的回應,添加一些內容。
另外,還有錯誤 206299可以請求使用Ctrl + Tab來切換選項卡而不是Ctrl + PgUp ( PgDn )。
如果不滿意,您可以從Window > Preferences > General > Keys 為自己分配鍵綁定。
如果您只想在當前和以前的選項卡選擇之間切換,使用CTRL + F6將來回切換。 要導航到歷史記錄中更遠的選項卡,您需要在“編輯器”窗口打開時使用向上/向下鍵。 這適用於 Helios(Eclipse 3.6); 不確定這對於舊版本的 Eclipse 是否適用。
從右到左: ctrl + shift + 9或ctrl + shift + Page Up或ctrl + Page Up
從左到右: ctrl + shift + 3或ctrl + shift + Page Down或ctrl + Page Down
按住CTRL並按F6直到到達所需的編輯器,然后松開。 UI 不像窗口選擇那么漂亮,但功能是一樣的。
在 SLES12 機器上,默認情況下您可以使用Ctrl + PageUp和Ctrl + PageDown在選項卡之間導航。 通過瀏覽“常規”類別下的“鍵”部分,您始終可以從“首選項”窗口更改這些鍵。 上面的 Victor 和 VonC 很好地解釋了這個過程。
如何在 Eclipse 中打開的窗口之間切換
CTRL+F7 在這里工作 - Windows 上的 Eclipse Photon。
Eclipse 到 2022-03 的版本曾經以 LRU 順序在編輯器之間進行CTRL + Tab切換,與CTRL + E相同 - 我相信這是相同的功能。 從 2022 版本開始, CTRL + Tab不再是這種情況,而是用於移動到不同的窗格(即從編輯器移動到底部窗格,或從底部窗格移動到其中一個側欄)。
在任何一種情況下, CTRL + Tab都不會在 Windows->Preferences->General->Keys 配置對話框中顯示為已使用的綁定 - 它似乎是硬編碼的。
這真的讓我很惱火,因為我非常習慣使用CTRL + Tab在多選項卡應用程序中切換選項卡,無論如何,它是一個比CTRL + E更簡單的快捷方式。
我的解決方案是 go 進入鍵配置對話框並將“快速切換編輯器”快捷方式從CTRL + E替換為CTRL + Tab 。
“快速切換編輯器”基本就是我需要的——按一次快速松開,你go回到之前用過的編輯器; 按一次並按住修改器 - 你會得到一個菜單,你可以在其中導航到 LRU 順序中的不同編輯器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.