Eclipse HotKey: как переключаться между вкладками?

Как я могу переключаться между открытыми окнами в Eclipse? Есть Ctrl + F6, но он спрашивает меня, какой из них я хочу, но я хочу переключать его, как вкладки в браузере или окно в операционной системе (Cmd / Win + Tab) без выбора файла из списка. Как сделать это в Eclipse?

Я пробовал назначать горячие клавиши для событий:

  • вперед
  • вперед история
  • следущая страница

но это работает не так, как я хочу.


person Skay    schedule 25.02.2010    source источник
comment
В мой ответ добавлены ярлыки для ОС, но вы не можете их переопределить.   -  person VonC    schedule 25.02.2010
comment
У меня тоже есть эта проблема. Я использую Mac, и у меня нет клавиш перехода на страницу вверх / вниз.   -  person neoneye    schedule 12.11.2020


Ответы (22)


  • CTRL + E (для списка редакторов)
  • CTRL + F6 (для перехода к следующему редактору через список)
    Вы можете назначить другой ярлык для клавиши «Следующий редактор».

- это два официальных ярлыка, но оба они включают отображение списка.

CTRL + Page Up / CTRL + Page Down может переключаться между редакторами без отображения списка.

Что интересно с этим последним набором ярлыков:
они не перечислены в ярлыках Eclipse Keys, которые необходимо определить.
Они могут быть унаследованы от многостраничного редактора, что делает их < strong> Ярлык для конкретной ОС.


Что касается ярлыков в Mac OS (OSX), Мэтт Болл в сентябре 2011 г. пожаловался на невозможность переназначения CTRL + Page Up / CTRL + Page Down:

Меня сводит с ума то, что я не могу пролистывать открытые вкладки, как я могу почти во всех других программах с вкладками в OS X ( - Left и ⌘ < / kbd> - Вправо).

Что ж, в марте 2012 года Артур ответил:

, Я только что загрузил последнюю версию Eclipse (3.7+). Мне удалось привязать «Предыдущая / Следующая вкладка» к ( - Left и - Right ) в редакторе, чего я почти не мог сделать раньше.
Думаю, они вас услышали.
Он работает так, как вы ожидаете, вкладки идут слева направо и наоборот, а не на основе истории или какой-то ерунды в этом роде.

Мэтт Болл подтверждает:

о, вау, выбор «Редактирование исходного кода Java» действительно сработал!
Теперь, к сожалению, это означает, что я SOL, если я перехожу к файлу, отличному от Java (JSP, XML, JS и т. д.) ).
Чтобы исправить это, "скопируйте команду" для этой пары и выберите все "когда", которые мне нужны.
Пока что это, по крайней мере, прекрасно работает для Java и Файлы JSP.
Это сложная процедура настройки PITA, но это всего лишь одноразовая вещь.

Его экспортированные настройки доступны здесь, чтобы вы могли их попробовать.
После импорта вы должны увидеть, для всех соответствующие типы документов:

Привязки клавиш Mac Os

person VonC    schedule 25.02.2010
comment
В OSX замените CTRL на CMD для первых двух действий клавиатуры. Но вам все равно нужно будет использовать CTRL с PgUp или PgDown для циклического перехода между редакторами. Еще один набор полезных сочетаний клавиш KB, которые я только что нашел, пробуя некоторые из приведенных ниже предложений: вы можете использовать ALT + Up или ALT + Down для перемещения всей строки кода. - person Tyler; 24.08.2011
comment
Нет никаких шансов, что теперь есть способ переназначить _1 _ / _ 2_ в Индиго, не так ли? Меня сводит с ума то, что я не могу пролистывать открытые вкладки, как я это делаю практически в любой другой программе с вкладками в OS X (⌘-Left и ⌘-Right). - person Matt Ball; 26.09.2011
comment
На нерасширенной клавиатуре OSX: по умолчанию fn + ctrl + up_arrow / down_arrow. - person Ben Flynn; 18.12.2011
comment
@ MДΓΓБДLL В OS X я только что загрузил последнюю версию Eclipse. Я смог привязать предыдущую / следующую вкладку к (⌘-влево и ⌘-вправо) в редакторе, что, я уверен, я не мог сделать раньше. Думаю, они вас услышали. Он работает так, как вы ожидаете, вкладки идут слева направо и наоборот, а не на основе истории или какой-то ерунды в этом роде. - person Arthur; 11.03.2012
comment
@Arthur Я только что обновил свою инсталляцию Indigo до версии 3.7.2, но все еще не могу заставить работать этот ярлык. Все, что он делает, это перемещает курсор в начало / конец строки. Я не вижу выбора редактора для раскрывающегося списка Когда:, так что это может быть частью проблемы. i.stack.imgur.com/EXHuZ.png ::frustrating:: - person Matt Ball; 12.03.2012
comment
@ MДΓΓБДLL ой ... Думаю, мне следовало сказать, что я использовал Eclipse для C / C ++. Извините, не приходило мне в голову. Разве это не работает с редактированием исходного кода Java? Если это может уменьшить вашу боль, когда я нахожусь на крайней правой вкладке, ⌘-Right не переместит меня на крайнюю левую ... Кроме того, я получаю действительно досадные ложные ошибки (ошибки отображаются, но все компилируется отлично) с момента обновления. Надеюсь, ты тоже этого не понимаешь! - person Arthur; 12.03.2012
comment
@Arthur Ого, выбор «Редактировать исходный код Java» действительно сработал! Теперь, к сожалению, это означает, что я SOL, если я нахожусь в файле, отличном от Java (JSP, XML, JS и т. Д.). Чтобы исправить это, скопируйте команду для этой пары и выберите все, что мне нужно. Пока что он, по крайней мере, прекрасно работает с файлами Java и JSP. Это серьезный PITA, который нужно настроить, но это всего лишь одноразовая вещь. Спасибо! - person Matt Ball; 12.03.2012
comment
@ MДΓΓБДLL: спасибо за исправление для файлов, отличных от java. Я включил его в ответ для большей наглядности. - person VonC; 12.03.2012
comment
И еще кое-что: я установил то, что должно быть всем необходимые горячие клавиши (в моем Eclipse для установки JEE; YMMV) и экспортировал свои привязки клавиш, чтобы сэкономить время другим: gist.github.com/2022533 - person Matt Ball; 12.03.2012
comment
Понятия не имел о Ctrl + PageUp и Ctrl + PageDown. В OS X вы можете использовать Keyboard Maestro, чтобы полностью переопределить Eclipse, и просто заставьте Cmd + Shift +] сделать Ctrl + PageDown и Cmd + Shift + [сделать Ctrl + PageUp. - person duma; 23.06.2014
comment
Этот ответ касается смены редакторов. Очень хотелось бы получить ответ на вопрос - о переключении / windows /. - person ChrisJJ; 04.11.2018
comment
черт возьми ... Затмение не выдерживает. Я везде искал эти ярлыки CTLR page up и page Down. я люблю затмение, но что за беспорядок - person Mordan; 26.01.2019
comment
Я переназначил ctrl-f6 на ctrl-tab и ctrl-e на ctrl-p, чтобы соответствовать остальному миру. Довольно приятно :) - person gosukiwi; 03.07.2020

Если вы перейдете в Настройки (например, Окно → Настройки) и просмотрите Общие → Ключи

а затем выполните поиск «Следующая вкладка» и «Предыдущая вкладка», вы можете переназначить их.

Команда

person victor    schedule 02.11.2010
comment
Я добавил следующую вкладку - ›Ctrl + Tab предыдущая вкладка -› Ctrl + Shift + Tab, как в Firefox - person Bruno Bieri; 18.08.2012
comment
Это не совсем то. Это просто циклически переключает вкладки в том порядке, в котором они появляются на панели вкладок, по сравнению с последним переключением на порядок. - person Hafthor; 14.09.2012
comment
Отлично работает, за исключением редактора макетов Android, который, кажется, поглощает / игнорирует эти команды. Всегда что-то! - person SMBiggs; 27.10.2012
comment
@Hafthor: Я привык к Notepad ++, поэтому хотел, чтобы Ctrl + Tab переключался между последними активными вкладками / редакторами. Для этого удалите по умолчанию Ctrl + F6 из команд следующего редактора и Ctrl + Shift + F6 из команд предыдущего редактора и вставьте вместо них Ctrl + Tab и Ctrl + Shift + Tab для этих команд. Обратите внимание, что мне по какой-то причине пришлось удалить старые команды (что мне не нужно было делать в других случаях, когда я менял ключи), но рад, что теперь это работает! Кроме того, во время игры Eclipse (Juno) вел себя странно, и я не мог переключать вкладки, используя любую из обычных или измененных комбинаций клавиш, но перезапуск исправил это. - person FriendFX; 08.03.2013
comment
Я добавил следующую вкладку - ›Ctrl + Tab предыдущая вкладка -› Ctrl + Shift + Tab, как в Visual Studio - person Memet Olsen; 16.12.2013
comment
Отлично. Когда вы делаете то же самое, убедитесь, что вы не конфликтуете с назначенными клавишами. Я всегда искал это и никогда не сталкивался с этим вопросом (сожалею). Назначены CTRL + Tab и CTRl + Shift + Tab, как в Chrome. - person Ajith Memana; 23.01.2014
comment
Установка Scheme в Microsoft Visual Studio - лучший выбор для тех, у кого есть .net фон. Вы можете легко перемещаться между вкладками, используя клавиши Ctrl + Tab. - person Vahid Ghadiri; 19.09.2014
comment
@FriendFX, спасибо за идею! Обратите внимание, что мне пришлось очистить привязку переключения источника / заголовка (это было Ctrl + Tab), чтобы предотвратить конфликт. - person elady; 13.01.2015

Переключитесь как Windows в ОС (перейти к последнему окну, в котором был фокус)

CTRL - F6 в Eclipse, например ALT - TAB (в окнах), вызывает список доступных вкладок / окон (если вы удерживаете CTRL / ALT клавиша нажата) и выделяет тот, к которому вы перейдете, когда отпустите эту клавишу. Вам не нужно выбирать окно. Если вы хотите перейти на несколько вкладок одновременно, удерживайте кнопку CTRL и нажмите кнопку TAB. Это идентично ALT - TAB в Windows.

В этом смысле CTRL - SHIFT - F6 в eclipse - это ALT - SHIFT - TAB аналог. Лично я меняю эти привязки в Eclipse, чтобы они были похожи на Visual Studio. Т.е. CTRL - TAB и CTRL - SHIFT - TAB а я делаю это так:

Окно> Настройки> Общие> Ключи

Затем установите «Следующий редактор» = Ctrl + Tab и «Предыдущий редактор» = Ctrl + < kbd> Shift + Tab. Не забудьте нажать «Unbind Command» перед установкой новой привязки.

Переключиться на браузер (перейти на вкладку справа от текущей вкладки)

Это CTRL - PageDown для перехода вправо, CTRL - PageUp чтобы пойти налево. К сожалению, когда вы дойдете до конца списка вкладок (скажем, крайняя правая вкладка), а затем снова попытаетесь перейти вправо, Eclipse не циклически переходит к первой вкладке (крайней левой), как это сделали бы большинство браузеров.

person Robino    schedule 12.01.2012
comment
Это самый недооцененный ответ в этой ветке. Тем более, что Juno меняет, какие вкладки отображаются в виде чистого списка, а не для недавно использованных редакторов. - person Jason Axelson; 08.11.2012
comment
Это работает в 90% случаев. Это не сработает, если курсор мыши окажется там, где всплывает список вкладок. Выбирается любая неудачная вкладка, появляющаяся перед курсором. - person User1; 04.01.2013
comment
Eclipse версии 3.6.2 работает 100% времени, где бы ни была мышь. В конце концов, это естественное поведение Eclipse, переназначенное на другие ключи! Хотя не пробовал древние версии Eclipse ... - person Robino; 16.01.2013
comment
Отключать команду «Следующий редактор» не нужно. Просто нажмите «Копировать команду», отредактируйте копию и привяжите ее к CTRL-TAB. - person Gillfish; 22.12.2014
comment
Он работает после перезапуска затмения для меня. Релиз Oxygen.3a (4.7.3a) Я думаю, что этот ответ должен быть принят. - person omerhakanbilici; 17.05.2018
comment
Напоминание о снятии привязки является ключевым моментом. В eclipse 2019-03 он не работал, пока исходная команда не была удалена, похоже, больше не поддерживает множественные привязки. - person Liam Steele; 11.06.2019
comment
@Robino писал: Eclipse не выполняет циклический переход к первой вкладке Вы можете настроить Eclipse для этого! Настройки ›Общие› Внешний вид, снимите флажок Показывать последние использованные вкладки. См. Здесь для получения дополнительной информации. - person Lii; 15.05.2020

Вы можете использовать ALT + Left для перехода к предыдущей вкладке или ALT + Right для перехода вперед. Однако этот метод использует переключение вкладок, как и история, поэтому он перейдет к предыдущей вкладке, которую вы открыли, и вперед, если вы вернулись «назад» один или несколько раз. Я знаю, это немного странно, но это работает. Вы всегда можете «сбросить» историю, щелкнув каждую вкладку один раз.

person peirix    schedule 26.02.2010
comment
Бесполезно, если в истории есть действия, такие как переход к определению метода в том же классе. - person SiN; 14.07.2011
comment
Раньше это было полезно, для eclipse helios это работает, как упоминалось в SiN - person Toskan; 20.09.2011
comment
Мне действительно нравится поведение, когда оно переходит к таким действиям, как переход к определению метода, это полезный способ перемещаться вперед и назад при навигации по большому количеству файлов. - person Ibrahim; 03.10.2012
comment
Это отлично работает при циклическом переключении между окнами редактирования. Мне нравится разделять экран на 2 части, а другие методы позволяют циклически группировать только одну вкладку (кроме Ctrl-F6, но я считаю это громоздким). - person RestingRobot; 06.11.2013

  • Right перемещение в сторону: Ctrl + на страницу вниз
  • Left перемещение в сторону: CTRL + page Up

Дополнительно

  • получить список открытых вкладок: Ctrl + F6

Затмение других сокращений

person Jubin Patel    schedule 07.06.2013

CTRL + F6 удобно использовать. Если вы хотите перейти на следующую / предыдущую вкладку, вам нужно сделать CTRL + Page Down / CTRL + Page Up .

person fastcodejava    schedule 25.02.2010
comment
Да, я часто пользуюсь этим. Однако, когда редактор предлагает несколько представлений (например, когда вы работаете с файлом XML или properties), он переключается между разными представлениями, и вы больше не можете переключаться между вкладками :( - person Romain Linsolas; 25.02.2010
comment
CTRL + F6 удобен в использовании. Здесь ничего не делает в Eclipse Photon в Windows. - person ChrisJJ; 04.11.2018

По умолчанию это Ctrl + F6. Вы можете изменить его, перейдя в Настройки окна. Я обычно меняю его на Ctrl + Tab, то же самое, что мы используем для переключения вкладок в браузере и других вещей.

person asgs    schedule 08.04.2011
comment
Я не сторонник отрицательного голосования, но сомневаюсь в вашей способности сопоставить привязку клавиш с помощью Ctrl + Tab вместе в Windows Vista, используя Eclipse Indigo. Это невозможно! Если бы я нажал Tab, это просто изменило бы фокус на кнопках и раскрывающемся списке. - person tom_mai78101; 07.09.2012
comment
@ tom_mai78101 Извините, мне не известно об этой проблеме с Windows Vista. Вы можете попробовать другое отображение по вашему выбору, хотя в XP оно будет успешным. - person asgs; 07.09.2012

Пример настраиваемой последовательности привязки клавиш: 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;
    }
}

Пример настраиваемой последовательности привязки клавиш: SHIFT + TAB для переключения между видимыми модулями или редакторами Backword с помощью 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;
    }
}

Ключевая последовательность

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>
person Chetan Bhagat    schedule 31.01.2017

3-строчный скрипт AutoHotKey (по крайней мере, в Windows):

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

Поместите его в папку автозагрузки (сохраните как * .ahk, должен быть установлен AutoHotKey), и вкладки Eclipse теперь будут работать как Chrome или Firefox.

person Zook    schedule 07.03.2014

Решено !!

Изменить схему на Microsoft Visual Studio

Окно> Настройки> Общие> Ключи

Найдите раскрывающийся список "Схемы"

Моя версия затмения:

Eclipse Java EE IDE для веб-разработчиков.

Версия: Juno Service Release 1 Идентификатор сборки: 20120920-0800

person sumitarora    schedule 22.03.2013

Никто никогда не прочитает мой ответ, но в любом случае ... Если у вас Mac OS X, вам понравятся мультитач-жесты для навигации по истории в Eclipse: http://sourceforge.net/apps/mediawiki/eclipsemultitch/

person borisdiakur    schedule 12.07.2013
comment
Я читаю все записи каждый божий день;) И Eclipse Multi-Touch выглядит красиво, так что +1. Но он кажется неактивным с 2010 года. Будет ли он по-прежнему работать с недавним Eclipse 4.x, таким как Juno? - person VonC; 13.07.2013

Сочетание клавиш для возврата к предыдущей вкладке

Alt + LeftArrow, чтобы вернуться.

person Sunil Garg    schedule 22.11.2016

В Windows, если у вас 5-кнопочная мышь, вы можете использовать вперед и назад вместо ALT + Left и ALT + Right.

person ajon    schedule 05.09.2013

Один из способов сделать это - использовать плагин VI, а затем просто выполнить: n ( и: N) для перехода между файлами.

Это то, чем я занимаюсь.

person CPerkins    schedule 25.02.2010

Вы можете установить горячие клавиши в «Настройки» -> «Общие» -> «Ключи» (или просто введите «ключи» в поле фильтра в верхней части диалогового окна «Настройки».

После того, как раздел «Ключи» выбран, найдите «Следующая вкладка» и «Предыдущая вкладка» и назначьте им свою собственную горячую клавишу, щелкнув поле «Привязка» и затем нажав горячие клавиши.

Нажмите «Применить» или «ОК», чтобы завершить процесс.

person grigb    schedule 05.07.2013

Если вы хотите просто переключаться между текущим и предыдущим выбором вкладок, используйте CTRL + F6, чтобы переключать вас назад и вперед. Чтобы перейти на вкладку, расположенную дальше в вашей истории, вам нужно использовать клавиши UP / DOWN, когда окно редактора открыто. Это работает с Helios (Eclipse 3.6); не уверен, верно ли это для более старых версий Eclipse.

person Mel Llaguno    schedule 21.10.2010

Цитирую ответ VonC, что-то добавляю.

  • Ctrl + PgUp (PgDn) для переключения между вкладками в текущем стеке (как для редактора, так и для просмотра)
  • Ctrl + E для переключения между вкладками в текущем стеке с использованием отфильтрованного списка
  • Ctrl + F6 для переключения между редакторами, независимо от того, какой стек
  • Ctrl + F7 для переключения между представлениями, независимо от того, какой стек

Кроме того, существует ошибка 206299, открытая для запроса с помощью Ctrl < / kbd> + Tab для переключения вкладок вместо Ctrl + PgUp (PgDn).

  • Поскольку это нарушит доступность, пользователь должен установить для этого предпочтение. Возможно, во время установки Oomph в приветственной анкете должен быть вопрос.

Если вас не устраивает, вы можете назначить себе привязку клавиш в Окно> Настройки> Общие> Ключи.

person psuzzi    schedule 24.09.2016

По какой-то причине мои настройки Eclipse были повреждены, поэтому мне пришлось вручную отредактировать файл /.plugins/org.eclipse.e4.workbench/workbench.xmi

Я должен был ранее установить Ctrl + Tab на переключение вкладок, как в браузере, и даже сброс всех привязок клавиш в настройках Eclipse не избавил бы от ярлыков (они не были отображается в любом месте). Я открыл вышеупомянутый файл и удалил <bindings> элементы, отмеченные <tags>type:user</tags>, относящиеся к неработающим ярлыкам.

person friederbluemle    schedule 09.05.2013

Справа налево: ctrl + shift + 9 или ctrl + shift + < kbd> Page Up или ctrl + Page Up

Слева направо: ctrl + shift + 3 или ctrl + shift + < kbd> Page Down или ctrl + Page Down

person Parth Patel    schedule 26.09.2017

Удерживая CTRL, нажимайте F6, пока не дойдете до нужного редактора, затем отпустите. Пользовательский интерфейс не такой красивый, как выбор окна, но функциональность такая же.

person Christopher Oezbek    schedule 25.02.2010

На машине SLES12 вы можете использовать Ctrl + PageUp и Ctrl + PageDown для перехода между вкладками по умолчанию. Вы всегда можете изменить эти ключи в окне настроек, просмотрев раздел «ключи» в категории «Общие». Этот процесс хорошо объяснен Виктором и ВонК выше.

person pavan kumar    schedule 17.08.2016

Как переключаться между открытыми окнами в Eclipse

CTRL + F7 работает здесь - Eclipse Photon в Windows.

person ChrisJJ    schedule 04.11.2018