Eclipse HotKey: Wie wechsle ich zwischen Registerkarten?

672

Wie kann ich in Eclipse zwischen geöffneten Fenstern wechseln? Es gibt Ctrl+ F6, aber es fragt mich, welches ich möchte, aber ich möchte es wie Registerkarten im Browser oder Fenster im Betriebssystem ( Cmd/ Win+ Tab) ohne Dateiauswahl aus der Liste wechseln . Wie mache ich das einfach in Eclipse?

Ich habe versucht, Hotkey für Ereignisse zuzuweisen:

  • nach vorne
  • Vorwärtsgeschichte
  • Nächste Seite

aber es funktioniert nicht so wie ich will.

Skay
quelle
3
In meiner Antwort wurden betriebssystemspezifische Verknüpfungen hinzugefügt, die Sie jedoch nicht neu definieren können.
VonC

Antworten:

902
  • CTRL+ E(für eine Liste der Herausgeber)
  • CTRL+ F6(um über eine Liste zum nächsten Editor zu wechseln)
    Sie können der Taste 'Nächster Editor' eine weitere Verknüpfung zuweisen.

sind die beiden offiziellen Verknüpfungen, bei denen jedoch eine Liste angezeigt wird.

CTRL+ Page Up/ CTRL+ Page Downkann durch Editoren blättern, ohne eine Liste anzuzeigen.

Das Interessante an diesem letzten Satz von Verknüpfungen ist:
Sie sind nicht in den zu definierenden Eclipse Keys-Verknüpfungen aufgeführt.
Sie können vom mehrseitigen Editor geerbt werden, was sie zu einer betriebssystemspezifischen Verknüpfung macht .


In Bezug auf Verknüpfungen unter Mac OS (OSX) beschwerte sich Matt Ball im September 2011, dass er CTRL+ Page Up/ CTRL+ nicht neu zuordnen könne Page Down:

Es macht mich verrückt, nicht durch geöffnete Tabs blättern zu können, wie ich es in so ziemlich jedem anderen Tabbed-Programm in OS X ( - Leftund - Right) kann.

Nun, im März 2012 antwortete Arthur :

Ich habe gerade die neueste Version von Eclipse (3.7+) heruntergeladen. Ich konnte "Vorherige / Nächste Registerkarte" im Editor an ( - Leftund - Right) binden , was ich vorher ziemlich sicher nicht konnte.
Also haben sie dich wohl gehört.
Es funktioniert genau so, wie Sie es erwarten, Registerkarten gehen von links nach rechts und umgekehrt, nicht auf Verlaufsbasis oder so einem Unsinn.

Matt Ball bestätigt:

oh wow, die Auswahl von "Java Source bearbeiten" hat tatsächlich funktioniert !
Leider bedeutet dies, dass ich SOL bin, wenn ich in eine Nicht-Java-Datei (JSP, XML, JS usw.) navigiere.
Die Lösung hierfür besteht darin, den Befehl für dieses Paar zu "kopieren" und alle gewünschten "Wann" auszuwählen .
Bisher funktioniert es zumindest hervorragend für Java- und JSP-Dateien.
Dies ist eine wichtige PITA, die eingerichtet werden muss, aber es ist nur eine einmalige Sache.

Seine exportierten Einstellungen können Sie hier ausprobieren.
Nach dem Import sollten für alle relevanten Dokumenttypen Folgendes angezeigt werden:

Mac Os Tastenkombinationen

VonC
quelle
7
Ersetzen Sie unter OSX STRG durch CMD für die ersten beiden Tastaturaktionen. Sie müssen jedoch weiterhin STRG mit PgUp oder PgDown verwenden, um durch die Editoren zu blättern. Ein weiterer Satz nützlicher KB-Verknüpfungen, die ich gerade beim Ausprobieren einiger der folgenden Vorschläge gefunden habe: Sie können ALT + Auf oder ALT + Ab verwenden, um eine ganze Codezeile zu verschieben.
Tyler
5
Keine Chance, dass es jetzt eine Möglichkeit gibt, CTRL+Page Up/ CTRL+Page Downin Indigo neu zuzuordnen , oder? Es macht mich verrückt, nicht durch offene Tabs blättern zu können, wie ich es in so ziemlich jedem anderen Tabbed-Programm in OS X ( ⌘-Leftund ⌘-Right) kann.
Matt Ball
24
Auf einer nicht erweiterten OSX-Tastatur: Standardmäßig fn + Strg + Aufwärtspfeil / Abwärtspfeil.
Ben Flynn
1
@ MДΓΓБДLL Unter OS X habe ich gerade die neueste Version von Eclipse heruntergeladen. Ich konnte "Vorherige / Nächste Registerkarte" im Editor an (⌘-Links und ⌘-Rechts) binden, was ich vorher ziemlich sicher nicht konnte. Also haben sie dich wohl gehört. Es funktioniert genau so, wie Sie es erwarten, Registerkarten gehen von links nach rechts und umgekehrt, nicht auf Verlaufsbasis oder so einem Unsinn.
Arthur
1
@ MДΓΓБДLL autsch ... Ich denke, ich hätte sagen sollen, dass ich auf Eclipse für C / C ++ war . Entschuldigung, bin mir nicht in den Sinn gekommen. Funktioniert es nicht mit "Java Source bearbeiten"? Wenn das Ihren Schmerz dämpfen kann, wenn ich ganz rechts bin, bringt mich ⌘-Rechts nicht ganz links ... Außerdem bekomme ich wirklich nervige "falsche Fehler" (Fehler werden aber angezeigt alles kompiliert perfekt) seit dem update. Hoffe du bekommst das nicht auch!
Arthur
191

Wenn Sie zu Einstellungen (z. B. Fenster → Einstellungen) gehen und Allgemein → Tasten anzeigen

und dann nach "Nächster Tab" und "Vorheriger Tab" suchen, können Sie sie neu zuordnen.

Befehl "Nächste Registerkarte" in den Eclipse-Einstellungen vor dem erneuten Binden

Sieger
quelle
15
Ich habe "Nächster Tab" hinzugefügt -> "Strg + Tab" "Vorheriger Tab" -> "Strg + Umschalt + Tab" wie in Firefox
Bruno Bieri
19
Das ist nicht genau das Richtige. Dadurch werden die Registerkarten nur in der Reihenfolge durchlaufen, in der sie in der Registerkartenleiste angezeigt werden.
Hafthor
Funktioniert hervorragend, mit Ausnahme des Android-Layout-Editors, der diese Befehle zu absorbieren / zu ignorieren scheint. Es ist immer etwas!
Scott Biggs
25
@Hafthor: Ich bin an Notepad ++ gewöhnt, daher wollte ich, dass Strg + Tab zwischen den letzten aktiven Tabs / Editoren wechselt. Entfernen Sie dazu die Standardeinstellung Strg + F6 aus den Befehlen "Nächster Editor" und Strg + Umschalt + F6 aus den Befehlen "Vorheriger Editor" und fügen Sie stattdessen Strg + Tab und Strg + Umschalt + Tab für diese Befehle ein. Beachten Sie, dass ich die alten Befehle aus irgendeinem Grund entfernen musste (was ich in anderen Fällen, in denen ich die Schlüssel geändert habe, nicht tun musste), aber froh, dass es jetzt funktioniert! Während ich herumspielte, verhielt sich Eclipse (Juno) seltsam und ich konnte die Tabs nicht mit einer der üblichen oder geänderten Tastenkombinationen wechseln, aber ein Neustart hat das behoben.
FriendFX
1
Ich habe "Nächster Tab" -> "Strg + Tab" "Vorheriger Tab" -> "Strg + Umschalt + Tab" hinzugefügt, wie es in Visual Studio
Memet Olsen
103

Wechseln Sie wie Windows im Betriebssystem ( gehen Sie zu dem Fenster, das zuletzt den Fokus hatte )

CTRL-F6 In Eclipse wird wie ALT-TAB (unter Windows) eine Liste der verfügbaren Registerkarten / Fenster angezeigt (wenn Sie die Taste CTRL/ ALTgedrückt halten) und diejenige hervorgehoben, zu der Sie springen, wenn Sie diese Taste loslassen. Sie müssen das Fenster nicht auswählen. Wenn Sie mehrere Registerkarten gleichzeitig durchlaufen möchten, halten Sie die CTRLTaste gedrückt und tippen Sie auf die TABSchaltfläche. Dies ist identisch Verhalten ALT-TAB unter Windows.

In diesem Sinne ist CTRL- SHIFT-F6 in Eclipse das ALT- SHIFT-TAB Analogon. Persönlich ändere ich diese Bindungen in Eclipse so, dass sie Visual Studio ähneln. Dh CTRL-TAB und CTRL- SHIFT-TAB und ich mache es so:

Fenster> Einstellungen> Allgemein> Tasten

Setzen Sie dann "Nächster Editor" = Ctrl+Tab und "Vorheriger Editor" = Ctrl+ Shift+Tab . Vergessen Sie nicht, auf "Befehl zum Aufheben der Bindung" zu klicken, bevor Sie die neue Bindung festlegen.

Wechseln Sie wie ein Browser ( gehen Sie zur Registerkarte rechts neben der aktuellen Registerkarte )

Dies ist CTRL-PageDown nach rechts gehen, CTRL-PageUp nach links gehen. Frustrierend ist, dass Eclipse nicht wie die meisten Browser zum ersten Tab (ganz links) wechselt, wenn Sie am Ende der Liste der Registerkarten angelangt sind (z. B. ganz rechts) und dann versuchen, wieder nach rechts zu wechseln.

Robino
quelle
12
Dies ist die am meisten unterbewertete Antwort in diesem Thread. Zumal Juno ändert, welche Registerkarten als reine Liste und nicht als zuletzt verwendete Editoren angezeigt werden.
Jason Axelson
Dies funktioniert in 90% der Fälle. Es schlägt fehl, wenn sich der Mauszeiger zufällig dort befindet, wo die Liste der Registerkarten angezeigt wird. Was auch immer für eine unglückliche Registerkarte vor dem Cursor erscheint, wird ausgewählt.
User1
Eclipse Version 3.6.2 funktioniert 100% der Zeit, egal wo sich die Maus befindet. Es ist schließlich das natürliche Verhalten von Eclipse, das verschiedenen Schlüsseln neu zugeordnet wurde! Ich habe noch keine alten Eclipse-Versionen ausprobiert ...
Robino
1
Sie müssen den Befehl "Nächster Editor" nicht aufheben. Klicken Sie einfach auf "Kopierbefehl", bearbeiten Sie die Kopie und binden Sie sie an CTRL-TAB.
Gillfish
1
Die Erinnerung zum Aufheben der Bindung ist der Schlüssel. In Eclipse 2019-03 funktionierte es nicht, bis der ursprüngliche Befehl entfernt wurde. Es scheint nicht mehr mehrere Bindungen zu unterstützen.
Liam Steele
55

Sie können ALT+ verwenden Left, um zu Ihrer vorherigen Registerkarte zu gelangen, oder ALT+ Right, um vorwärts zu gehen. Bei dieser Methode wird jedoch das Umschalten von Registerkarten wie beim Verlauf verwendet, sodass zur vorherigen Registerkarte, die Sie geöffnet haben, und zum Weiterleiten weitergeleitet wird, wenn Sie einmal oder mehrmals "zurück" gegangen sind. Ein bisschen komisch, ich weiß, aber es funktioniert. Sie können den Verlauf jederzeit "zurücksetzen", indem Sie einmal durch jede Registerkarte klicken.

Peirix
quelle
5
Nicht nützlich, wenn im Verlauf Aktionen aufgezeichnet sind, z. B. die Methodendefinition in derselben Klasse.
SiN
Dies war früher nützlich, für Eclipse-Helios funktioniert dies wie von SiN erwähnt
Toskan
2
Ich mag das Verhalten bei Aktionen wie der Methodendefinition. Es ist eine nützliche Methode, um beim Navigieren in vielen Dateien hin und her zu gehen.
Ibrahim
1
Dies funktioniert hervorragend, wenn Sie zwischen den Bearbeitungsfenstern hin und her wechseln. Ich teile meinen Bildschirm gerne in 2 und die anderen Methoden zyklieren nur die Tab-Gruppierung von Zyklus 1 (außer Strg-F6, aber ich finde das umständlich).
Jlange
13

CTRL+ F6ist gut zu bedienen. Wenn Sie zur nächsten / vorherigen Registerkarte wechseln möchten, müssen Sie CTRL+ Page Down/ CTRL+ ausführen Page Up.

fastcodejava
quelle
2
Ja, ich benutze diesen oft. Wenn der Editor jedoch mehrere Ansichten vorschlägt (z. B. wenn Sie an einer XMLoder einer propertiesDatei arbeiten), wechselt er zwischen den verschiedenen Ansichten, und Sie können nicht mehr zwischen Registerkarten wechseln :(
Romain Linsolas
"STRG + F6 ist gut zu bedienen." Tut hier nichts, auf Eclipse Photon in Windows.
ChrisJJ
10

Der Standardwert ist Ctrl+ F6. Sie können es ändern, indem Sie zu den Fenstereinstellungen gehen . Normalerweise ändere ich es in Ctrl+ Tab, das gleiche, das wir beim Wechseln der Registerkarten in einem Browser und anderen Dingen verwenden.

Fragen
quelle
Ich bin kein Down-Voter, aber ich bezweifle Ihre Fähigkeit, eine Tastenkombination mit Strg + Tab unter Windows Vista mithilfe von Eclipse Indigo zuzuordnen. Es ist unmöglich! Wenn ich die Tabulatortaste drücken würde, würde sich einfach der Fokus auf die Schaltflächen und die Dropdown-Liste ändern.
tom_mai78101
@ tom_mai78101 Dieses Problem mit Windows Vista ist mir leider nicht bekannt. Sie können ein anderes Mapping Ihrer Wahl ausprobieren, obwohl es in XP erfolgreich ist.
Asgs
6

Beispiel CTRL + TAB für eine benutzerdefinierte KeyBinding-Sequenz: Umschalten zwischen sichtbaren Modulen oder Editoren Vorwärtsrichtung mit Eclipse RCP.

Sie drücken das CTRL + TAB zweite Mal, um einen anderen Editor zu öffnen und den vorherigen Editor mit RCP Eclipse zu schließen.

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

Beispiel SHIFT + TAB für eine benutzerdefinierte KeyBinding-Sequenz: Umschalten zwischen sichtbaren Modulen oder Editoren. Backword- Richtung mit 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;
    }
}

Tastenfolge

M1 bedeutet CTRL

M2 bedeutet 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>
Chetan Bhagat
quelle
5

3-zeiliges AutoHotKey-Skript (jedenfalls unter Windows):

#IfWinActive ahk_class SWT_Window0
^+Tab::^PgUp
^Tab::^PgDn

Legen Sie dies in Ihren Startordner (speichern Sie es als * .ahk, muss AutoHotKey installiert haben) und Eclipse-Registerkarten funktionieren jetzt wie Chrome oder Firefox.

Zook
quelle
3

Gelöst !!

Ändern Sie das Schema in Microsoft Visual Studio

Fenster> Einstellungen> Allgemein> Tasten

Suchen Sie nach der Dropdown-Liste "Schemata"

Meine Eclipse-Version:

Eclipse Java EE IDE für Webentwickler.

Version: Juno Service Release 1 Build-ID: 20120920-0800

Sumitarora
quelle
3

Niemand wird meine Antwort jemals lesen, aber trotzdem ... Wenn Sie unter Mac OS X arbeiten, werden Sie Multi-Touch-Gesten für die Verlaufsnavigation in Eclipse lieben: http://sourceforge.net/apps/mediawiki/eclipsemultitch/

borisdiakur
quelle
1
Ich lese jeden Tag alle Einträge ;) Und "Eclipse Multi-Touch" sieht gut aus, also +1. Aber es scheint seit 2010 inaktiv zu sein. Würde es immer noch mit Eclipse 4.x wie Juno funktionieren?
VonC
2

Wenn Sie unter Windows eine Maus mit 5 Tasten haben, können Sie anstelle von ALT+Leftund vorwärts und rückwärts verwenden ALT+Right.

Ajon
quelle
2

Tastenkombination zum Zurückkehren zur vorherigen Registerkarte

Alt+ zurück LeftArrowgehen.

Sunil Garg
quelle
1

Eine Möglichkeit, dies zu tun, besteht darin, das VI-Plugin zu verwenden , und dann tun Sie einfach: n (und: N), um zwischen Dateien zu wechseln.

Das ist, was ich tue.

CPerkins
quelle
1

Sie können die Hotkeys unter Einstellungen -> Allgemein -> Tasten festlegen (oder einfach "Tasten" in das Filterfeld oben im Dialogfeld "Einstellungen" eingeben.

Wenn der Abschnitt Schlüssel ausgewählt ist, suchen Sie die Registerkarte Weiter und Zurück und weisen Sie ihnen Ihren eigenen Hotkey zu, indem Sie in das Feld "Bindung" klicken und dann Ihre Hotkeys eingeben.

Klicken Sie auf Übernehmen oder auf OK, um den Vorgang abzuschließen.

grigb
quelle
1

Ich zitiere die Antwort von VonC und füge etwas hinzu.

  • Ctrl+ PgUp( PgDn) zum Wechseln zwischen Registerkarten im aktuellen Stapel (sowohl Editoren als auch Ansicht)
  • Ctrl+ Ezum Wechseln zwischen Registerkarten im aktuellen Stapel mithilfe einer gefilterten Liste
  • Ctrl+ F6um zwischen Editoren zu wechseln, egal welcher Stapel
  • Ctrl+ F7um zwischen Ansichten zu wechseln, egal welcher Stapel

Außerdem ist Bug 206299 geöffnet, um die Verwendung von Ctrl+ Tabzum Wechseln der Registerkarten anstelle von Ctrl+ PgUp( PgDn) anzufordern .

  • Da dies die Zugänglichkeit beeinträchtigen würde, sollte der Benutzer eine Präferenz dafür festlegen. Möglicherweise sollte während der Oomph-Installation eine Frage im Begrüßungsfragebogen enthalten sein.

Wenn Sie nicht zufrieden sind, können Sie sich die Schlüsselbindung über Fenster> Einstellungen> Allgemein> Schlüssel zuweisen .

psuzzi
quelle
1

Aus irgendeinem Grund waren meine Eclipse-Einstellungen beschädigt, sodass ich die Datei /.plugins/org.eclipse.e4.workbench/workbench.xmi manuell bearbeiten musste

Ich muss zuvor Ctrl+ Tabauf Browser-ähnliche Tab-Umschaltung eingestellt haben, und selbst das Zurücksetzen aller Tastenkombinationen in den Eclipse-Einstellungen würde die Verknüpfungen nicht entfernen (sie wurden auch nirgendwo angezeigt). Ich habe die oben genannte Datei geöffnet und die <bindings>Elemente entfernt, die mit <tags>type:user</tags>den nicht funktionierenden Verknüpfungen gekennzeichnet sind.

friederbluemle
quelle
1

Von rechts nach links: ctrl+ shift+ 9 oder ctrl+ shift+ Page Upoder ctrl+Page Up

Von links nach rechts: ctrl+ shift+ 3oder ctrl+ shift+ Page Downoder ctrl+Page Down

Parth Patel
quelle
0

Wenn Sie einfach zwischen Ihrer aktuellen und Ihrer vorherigen Registerkarte wechseln möchten, können Sie mit CTRL+ F6hin und her wechseln. Um zu einer Registerkarte weiter hinten in Ihrem Verlauf zu navigieren, müssen Sie die Tasten UP/ verwenden DOWN, während das Fenster "Editoren" geöffnet ist. Dies funktioniert mit Helios (Eclipse 3.6); Ich bin mir nicht sicher, ob dies für ältere Versionen von Eclipse zutrifft.

Mel Llaguno
quelle
0

Halten Sie gedrückt CTRLund drücken F6Sie, bis Sie den gewünschten Editor erreicht haben, und lassen Sie dann los. Die Benutzeroberfläche ist nicht so hübsch wie die Fensterauswahl, aber die Funktionalität ist dieselbe.

Christopher Oezbek
quelle
0

Auf einem SLES12-Computer können Sie standardmäßig mit Ctrl+ PageUpund Ctrl+ PageDownzwischen Registerkarten navigieren. Sie können diese Schlüssel jederzeit im Fenster "Einstellungen" ändern, indem Sie den Abschnitt "Schlüssel" unter der Kategorie "Allgemein" durchsuchen. Dieser Prozess wird von Victor und VonC oben gut erklärt.

Pavan Kumar
quelle
0

Wie kann ich in Eclipse zwischen geöffneten Fenstern wechseln?

STRG + F7 funktioniert hier - Eclipse Photon unter Windows.

ChrisJJ
quelle