Eclipse HotKey: jak przełączać się między kartami?

672

Jak mogę przełączać się między otwartymi oknami w Eclipse? Jest Ctrl+ F6, ale pyta mnie, którego chcę, ale chcę go przełączyć jak karty w przeglądarce lub okno w systemie operacyjnym ( Cmd/ Win+ Tab) bez wyboru pliku z listy. Jak to zrobić w Eclipse?

Próbowałem przypisać skrót do zdarzeń:

  • Naprzód
  • historia do przodu
  • Następna strona

ale to nie działa tak, jak chcę.

W porządku
źródło
3
Dodałem skróty specyficzne dla systemu operacyjnego w mojej odpowiedzi, ale nie można ich przedefiniować.
VCC,

Odpowiedzi:

902
  • CTRL+ E(dla listy redaktorów)
  • CTRL+ F6(w celu przejścia do następnego edytora poprzez listę)
    Możesz przypisać inny skrót do klawisza „Następny edytor”.

to dwa oficjalne skróty, ale oba wymagają wyświetlenia listy.

CTRL+ Page Up/ CTRL+ Page Downmoże przełączać edytory bez wyświetlania listy.

Interesujące w tym ostatnim zestawie skrótów jest to,
że nie są one wymienione w zdefiniowanych skrótach do kluczy Eclipse Keys.
Mogą być dziedziczone z edytora wielostronicowego, co czyni je skrótem specyficznym dla systemu operacyjnego .


Jeśli chodzi o skróty w systemie Mac OS (OSX), Matt Ball skarżył się we wrześniu 2011 roku na brak możliwości zmiany mapowania CTRL+ Page Up/ CTRL+ Page Down:

Doprowadza mnie to do szału, że nie jestem w stanie przerzucać otwartych kart, jak mogę w prawie każdym innym programie z kartami w OS X ( - Lefti - Right).

W marcu 2012 roku Arthur odpowiedział:

, Właśnie pobrałem najnowszą wersję Eclipse (3.7+). W Edytorze mogłem powiązać „poprzednią / następną kartę” z ( - Lefti - Right), czego jestem pewien, że wcześniej nie mogłem.
Więc chyba cię słyszeli.
Działa tak, jak się spodziewasz, zakładki przechodzą od lewej do prawej i odwrotnie, nie w oparciu o historię lub takie bzdury.

Matt Ball potwierdza:

o wow, wybranie „Edycja źródła Java” faktycznie działało !
Niestety, oznacza to, że jestem SOL, jeśli przejdę do pliku innego niż Java (JSP, XML, JS itp.).
Rozwiązaniem tego problemu jest „skopiowanie polecenia” dla tej pary i wybranie wszystkich „kiedy”, które chcę .
Jak dotąd działa on pięknie dla plików Java i JSP.
Jest to poważna PITA do skonfigurowania, ale to tylko jednorazowa rzecz.

Jego eksportowane preferencje są dostępne tutaj, abyś mógł spróbować.
Po zaimportowaniu powinieneś zobaczyć wszystkie odpowiednie typy dokumentów:

Wiązania klawiszy Mac OS

VonC
źródło
7
W OSX zamień CTRL na CMD dla pierwszych dwóch akcji klawiatury. Ale nadal będziesz musiał używać CTRL z PgUp lub PgDown, aby przełączać się między edytorami. Kolejny zestaw przydatnych skrótów KB, który właśnie znalazłem, wypróbowując niektóre z poniższych sugestii: możesz użyć klawiszy ALT + góra lub ALT + dół, aby przenieść cały wiersz kodu.
Tyler,
5
Nie ma szans, że teraz jest sposób na remap CTRL+Page Up/ CTRL+Page DownIndigo, prawda? Doprowadza mnie to do szału, że nie jestem w stanie przerzucać otwartych kart, jak mogę w prawie każdym innym programie z kartami w OS X ( ⌘-Lefti ⌘-Right).
Matt Ball
24
Na nie rozszerzonej klawiaturze OSX: domyślnie fn + ctrl + strzałka w górę / strzałka w dół.
Ben Flynn
1
@ MДΓΓБДLL Na OS X, właśnie pobrałem najnowszą wersję Eclipse. W Edytorze byłem w stanie powiązać „poprzednią / następną kartę” z (⌘-lewy i ⌘-prawy), czego z całą pewnością nie mogłem zrobić wcześniej. Więc chyba cię słyszeli. Działa tak, jak się spodziewasz, zakładki przechodzą od lewej do prawej i odwrotnie, nie w oparciu o historię lub takie bzdury.
Arthur
1
@ MДΓΓБДLL ouch ... Chyba powinienem powiedzieć, że korzystałem z Eclipse dla C / C ++ . Przepraszam, nie przyszło mi do głowy. Czy to nie działa z „Edycją źródła Java”? Jeśli to może złagodzić twój ból, kiedy jestem w skrajnej prawej zakładce, ⌘-prawy nie zaprowadzi mnie do skrajnie lewej ... Poza tym dostaję naprawdę denerwujące „fałszywe błędy” (wyświetlane są błędy, wszystko kompiluje się idealnie) od czasu aktualizacji. Mam nadzieję, że też tego nie rozumiesz!
Arthur
191

Jeśli przejdziesz do Preferencji (np. Okno → Preferencje) i zobaczysz Ogólne → Klawisze

a następnie wyszukaj „Następna karta” i „Poprzednia karta”, możesz je ponownie przypisać.

Polecenie Next Tab w Preferencjach Eclipse, przed ponownym wiązaniem

zwycięzca
źródło
15
Dodałem „następną kartę” -> „Ctrl + Tab” „poprzednią kartę” -> „Ctrl + Shift + Tab” tak, jak w przeglądarce Firefox
Bruno Bieri
19
To nie jest dokładnie właściwa rzecz. To po prostu przełącza karty w kolejności, w jakiej pojawiają się na pasku kart, w porównaniu do ostatnio przełączonej na kolejność.
Hafthor,
Działa świetnie, z wyjątkiem edytora układu Androida, który wydaje się wchłaniać / ignorować te polecenia. To zawsze coś!
Scott Biggs,
25
@Hafthor: Jestem przyzwyczajony do Notepad ++, więc chciałem, aby Ctrl + Tab przełączał się między ostatnimi aktywnymi kartami / edytorami. Aby to zrobić, usuń domyślne Ctrl + F6 z „Następnego edytora” i Ctrl + Shift + F6 z poleceń „Poprzedniego edytora” i zamiast tego wstaw Ctrl + Tab i Ctrl + Shift + Tab. Zauważ, że musiałem usunąć stare polecenia z jakiegoś powodu (czego nie musiałem robić w innych przypadkach, w których zmieniałem klucze), ale cieszę się, że teraz działa! Ponadto, podczas zabawy, Eclipse (Juno) zachowywał się dziwnie i nie mogłem przełączać kart przy użyciu zwykłych lub zmienionych kombinacji klawiszy, ale restart to naprawił.
FriendFX,
1
Dodałem „następną kartę” -> „Ctrl + Tab” „poprzednią kartę” -> „Ctrl + Shift + Tab” tak, jak w Visual Studio
Memet Olsen,
103

Przełącz się jak Windows w systemie operacyjnym ( przejdź do okna, na którym ostatnio było fokus )

CTRL-F6 w Eclipse, podobnie jak ALT-TAB (w systemie Windows), wyświetla listę dostępnych kart / okien (jeśli przytrzymasz klawisz CTRL/ ALT) i podświetla tę, do której przeskoczysz po zwolnieniu tego klawisza. Nie musisz wybierać okna. Jeśli chcesz przejść przez kilka kart jednocześnie, przytrzymaj CTRLprzycisk i dotknij TABprzycisku. To jest identyczne do zachowań ALT-TAB w systemie Windows.

W tym sensie CTRL- SHIFT-F6 w Eclipse jest ALT- SHIFT-TAB analogowy. Osobiście zmieniam te wiązania w Eclipse, aby były jak Visual Studio. Czyli CTRL-TAB i CTRL- SHIFT-TAB i zrobić to tak:

Okno> Preferencje> Ogólne> Klucze

Następnie ustaw „Następny edytor” = Ctrl+Tab i „Poprzedni edytor” = Ctrl+ Shift+Tab . Nie zapomnij kliknąć „Unbind Command” przed ustawieniem nowego powiązania.

Przełącz się jak przeglądarka ( przejdź do karty po prawej stronie bieżącej karty )

To jest CTRL-PageDown iść w prawo, CTRL-PageUp iść w lewo. Frustrujące jest to, że kiedy dotrzesz do końca listy kart (powiedz kartę po prawej stronie), a następnie spróbuj przejść w prawo ponownie, Eclipse nie przechodzi do pierwszej karty (daleko po lewej), jak większość przeglądarek.

Robino
źródło
12
To jest najbardziej niedoceniana odpowiedź w tym wątku. Zwłaszcza, że ​​Juno zmienia karty, które mają być czystą listą, a nie ostatnio używanymi edytorami.
Jason Axelson
Działa to w 90% przypadków. Nie udaje się, jeśli kursor myszy znajduje się tam, gdzie pojawia się lista kart. Zaznaczona zostanie każda pechowa karta pojawiająca się przed kursorem.
Użytkownik1
Eclipse wersja 3.6.2 działa przez 100% czasu, niezależnie od tego, gdzie znajduje się mysz. W końcu naturalne zachowanie Eclipse jest odwzorowane na różne klucze! Nie próbowałem jednak starożytnych wersji Eclipse ...
Robino,
1
Nie musisz cofać wiązania polecenia „Następny edytor”. Po prostu kliknij „Kopiuj polecenie”, edytuj kopię i powiąż ją CTRL-TAB.
Gillfish,
1
Przypomnienie o kluczu jest kluczowe. W środowisku Eclipse 2019-03 nie działało, dopóki oryginalne polecenie nie zostało usunięte, wydaje się, że nie obsługuje już wielu powiązań.
Liam Steele,
55

Możesz użyć ALT+, Leftaby przejść do poprzedniej karty lub ALT+, Rightaby przejść do przodu. Ta metoda korzysta z przełączania kart jak historia, więc przejdzie do poprzedniej otwartej karty i przejdzie dalej, jeśli cofniesz się raz lub więcej razy. To trochę dziwne, wiem, ale działa. Zawsze możesz „zresetować” historię, klikając raz każdą kartę.

peirix
źródło
5
Nie jest to przydatne, gdy w historii zapisywane są akcje, takie jak przejście do definicji metody w tej samej klasie.
SiN
kiedyś było to przydatne, w przypadku heli zaćmienia działa to tak, jak wspomniano SiN
Toskan
2
Właściwie podoba mi się zachowanie, gdy chodzi o działania takie jak definiowanie metod, jest to przydatny sposób poruszania się w przód iw tył podczas nawigacji po wielu plikach.
Ibrahim
1
Działa to świetnie podczas przechodzenia między oknami edycji. Lubię dzielić ekran na 2, a inne metody cyklicznie grupują tylko tabulatory 1 (oprócz Ctrl-F6, ale uważam to za kłopotliwe).
Jlange,
13

CTRL+ F6jest dobry w użyciu. Jeśli chcesz przejść do następnej / poprzedniej karty, musisz zrobić CTRL+ Page Down/ CTRL+ Page Up.

fastcodejava
źródło
2
Tak, często tego używam. Jednak gdy edytor proponuje wiele widoków (na przykład podczas pracy nad plikiem XMLlub properties), przełącza się między różnymi widokami i nie można już przełączać się między kartami :(
Romain Linsolas
„CTRL + F6 jest dobry w użyciu.” Nie robi nic tutaj, w Eclipse Photon w systemie Windows.
ChrisJJ
10

Domyślnie jest to Ctrl+ F6. Możesz to zmienić, przechodząc do preferencji okna . Zwykle zmieniam to na Ctrl+ Tab, to samo, którego używamy do przełączania kart w przeglądarce i innych rzeczy.

asgs
źródło
Nie jestem zwolennikiem głosowania przeciwko, ale kwestionuję twoją zdolność do mapowania powiązania klawiszy za pomocą Ctrl + Tab razem w systemie Windows Vista przy użyciu Eclipse Indigo. To niemożliwe! Gdybym nacisnął Tab, po prostu zmieniłbym nacisk na przyciski i listę rozwijaną.
tom_mai78101
@ tom_mai78101 Przepraszamy, nie znam tego problemu w systemie Windows Vista. Możesz wypróbować inne mapowanie według własnego wyboru, choć jest to skuteczne w XP.
asgs
6

Przykład niestandardowej sekwencji KeyBinding: CTRL + TAB przełączanie między widocznymi modułami lub edytorem do przodu za pomocą Eclipse RCP.

naciskasz CTRL + TAB drugi raz, aby otworzyć inny edytor i zamknąć poprzedni edytor za pomocą 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;
    }
}

Przykład niestandardowej sekwencji KeyBinding: SHIFT + TAB przełączanie między widocznymi modułami lub edytorem Backword przy użyciu 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;
    }
}

Sekwencja klawiszy

M1 oznacza CTRL

M2 oznacza 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
źródło
5

3-liniowy skrypt AutoHotKey (w każdym razie w systemie Windows):

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

Umieść to w folderze startowym (zapisz jako * .ahk, musi mieć zainstalowany AutoHotKey), a karty Eclipse będą teraz działać jak Chrome lub Firefox.

Zook
źródło
3

Rozwiązany!!

Zmień schemat na Microsoft Visual Studio

Okno> Preferencje> Ogólne> Klucze

Poszukaj menu Schematy

Moja wersja zaćmienia:

Eclipse Java EE IDE dla programistów stron internetowych.

Wersja: Juno Service Release 1 Numer kompilacji: 20120920-0800

sumitarora
źródło
3

Nikt nigdy nie przeczyta mojej odpowiedzi, ale mimo wszystko ... Jeśli korzystasz z systemu Mac OS X, pokochasz gesty wielodotykowe do nawigacji po historii w Eclipse: http://sourceforge.net/apps/mediawiki/eclipsemultitch/

borisdiakur
źródło
1
Czytam wszystkie wpisy każdego dnia ;) A „Eclipse Multi-Touch” wygląda ładnie, więc +1. Ale wydaje się nieaktywny od 2010 roku. Czy nadal będzie działał z najnowszym Eclipse 4.x jak Juno?
VonC
2

W systemie Windows, jeśli masz mysz z 5 przyciskami, możesz używać przycisków do przodu i do tyłu zamiast ALT+Lefti ALT+Right.

ajon
źródło
2

Klawisz skrótu, aby wrócić do poprzedniej karty

Alt+, LeftArrowaby wrócić.

Sunil Garg
źródło
1

Jednym ze sposobów jest użycie wtyczki VI , a następnie wystarczy: n (i: N), aby przechodzić między plikami.

To jest to co robię.

CPerkins
źródło
1

Możesz ustawić skróty w Preferencjach -> Ogólne -> Klawisze (lub po prostu wpisz „klucze” w polu filtru u góry okna dialogowego Preferencje.

Po wybraniu sekcji Klawisze znajdź następną kartę i poprzednią kartę i przypisz im własny skrót, klikając pole „Wiązanie”, a następnie wpisując skróty klawiszowe.

Naciśnij Zastosuj lub OK, aby zakończyć proces.

grigb
źródło
1

Cytuję odpowiedź VonC, dodając coś.

  • Ctrl+ PgUp( PgDn), aby przełączać się między kartami w bieżącym stosie (zarówno edytory, jak i widok)
  • Ctrl+, Eaby przełączać się między kartami w bieżącym stosie, używając przefiltrowanej listy
  • Ctrl+, F6aby przełączać się między edytorami, bez względu na to, który stos
  • Ctrl+, F7aby przełączać się między widokami, bez względu na stos

Ponadto istnieje błąd 206299, który można otworzyć za pomocą Ctrl+ Tabdo przełączania kart zamiast Ctrl+ PgUp( PgDn).

  • Ponieważ spowodowałoby to uszkodzenie dostępności, użytkownik powinien ustawić takie preferencje. Być może powinno być pytanie w Kwestionariuszu powitalnym podczas instalacji Oomph.

Jeśli nie jesteś zadowolony, możesz przypisać sobie przypisanie klawiszy, wybierając Okno> Preferencje> Ogólne> Klawisze .

psuzzi
źródło
1

Z jakiegoś powodu moje ustawienia Eclipse zostały uszkodzone, więc musiałem ręcznie edytować plik /.plugins/org.eclipse.e4.workbench/workbench.xmi

Musiałem wcześniej ustawić Ctrl+ Tabna przełączanie tabulatorów podobne do przeglądarki, a nawet zresetowanie wszystkich skrótów klawiszowych w preferencjach Eclipse nie pozbyłoby się skrótów (nie były one nigdzie wyświetlane). Otworzyłem wyżej wymieniony plik i usunąłem <bindings>elementy oznaczone jako <tags>type:user</tags>związane z niedziałającymi skrótami.

friederbluemle
źródło
1

Od prawej do lewej: ctrl+ shift+ 9 lub ctrl+ shift+ Page Uplub ctrl+Page Up

Od lewej do prawej: ctrl+ shift+ 3lub ctrl+ shift+ Page Downlub ctrl+Page Down

Parth Patel
źródło
0

Jeśli chcesz po prostu przełączać się między obecnymi i poprzednimi ustawieniami kart, użycie CTRL+ F6spowoduje przełączanie w przód iw tył. Aby przejść do karty w dalszej części historii, musisz użyć klawiszy UP/ DOWN, gdy okno edytorów jest otwarte. Działa to z Helios (Eclipse 3.6); nie jestem pewien, czy dotyczy to starszych wersji Eclipse.

Mel Llaguno
źródło
0

Przytrzymaj CTRLi naciśnij, F6aż dojdziesz do żądanego edytora, a następnie zwolnij. Interfejs użytkownika nie jest tak ładny jak wybór okna, ale funkcjonalność jest taka sama.

Christopher Oezbek
źródło
0

Na komputerze SLES12 domyślnie można używać Ctrl+ PageUpi Ctrl+, PageDownaby nawigować między kartami. Zawsze możesz zmienić te klucze w oknie Preferencje, przeglądając sekcję „klucze” w kategorii „Ogólne”. Proces ten jest dobrze wyjaśniony powyżej w Victor i VonC.

pavan kumar
źródło
0

Jak przełączać się między otwartymi oknami w Eclipse

CTRL + F7 działa tutaj - Eclipse Photon w systemie Windows.

ChrisJJ
źródło