Как переключаться между открытыми окнами в Eclipse? Существует Ctrl + F6, но он спрашивает, какой из них я хочу, но я хочу переключать его как вкладки в браузере или окне в операционной системе (Cmd/Win + Tab) без выбора файла из списка. Как это сделать в Eclipse?
Я попытался назначить горячую клавишу для событий:
но он не работает так, как я хочу.
являются двумя официальными ярлыками, но оба они включают отображение списка.
CTRL + Page Up/CTRL + Page Down может циклически переключаться между редакторами без отображения списка.
Что интересно с последним набором ярлыков:
они не указаны в ярлыках Eclipse Keys, которые нужно определить.
Они могут быть унаследованы от многостраничного редактора, что делает их ярлыком OS.
Что касается ярлыков в Mac OS (OSX), Matt Ball, он жаловался в сентябре 2011 года на невозможность переназначить CTRL + Page Up/CTRL + Page Down:
Это сводит меня с ума, чтобы не открывать открытые вкладки, как я могу, в любой другой вкладке в OS X (⌘ - Left и ⌘ - Right).
Хорошо, в марте 2012 года Arthur ответил:
я только что загрузил последнюю версию Eclipse (3.7+). Я смог привязать вкладку "Предыдущий/Следующий" к (⌘ - Left и ⌘ - Right)), когда в редакторе я уверен, что раньше не мог.
Поэтому я думаю, они слышали тебя. Он работает так же, как вы ожидаете, вкладки идут слева направо и наоборот, а не на основе истории или какой-то глупости.
Matt Ball подтверждает:
oh wow, выбрав "Редактирование источника Java" на самом деле!
Теперь, к сожалению, это означает, что я SOL, если я нахожусь в не-Java файле (JSP, XML, JS и т.д.).
Исправление для этого - "скопировать команду" для этой пары и выбрать все "когда", которые я хочу.
Пока он, по крайней мере, прекрасно работает для Java и JSP файлов.
Это основная PITA для настройки, но это всего лишь одно время.
Его экспортированные настройки доступны здесь для вас. После импорта вы должны увидеть для всех соответствующих типов документов:
CTRL+Page Up
/ CTRL+Page Down
в Индиго, не так ли? Это сводит меня с ума от невозможности пролистывать открытые вкладки, как я могу почти во всех других программах с вкладками в OS X ( ⌘-Left
и ⌘-Right
).
Если вы перейдете в "Настройки" (например, "Окно" → "Настройки" ) и просмотрите "Основные" → "Клавиши"
а затем выполните поиск "Следующая вкладка" и "Предыдущая вкладка", вы можете переназначить их.
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 + SHIFT + TAB. Не забудьте нажать "Отменить команду" перед установкой новой привязки.
Это CTRL - PageDown, чтобы перейти вправо, CTRL - PageUp, чтобы идти влево. Разочаровывающе, когда вы дойдете до конца списка вкладок (скажем, за правой правой вкладкой), а затем попробуйте снова вернуться. Eclipse не циклично перемещается к первой вкладке (далеко слева), как это делали большинство браузеров.
Вы можете использовать ALT + Left, чтобы перейти на предыдущую вкладку, или ALT + Right, чтобы перейти к переходу. Этот метод использует переключение табуляции, подобно истории, поэтому он перейдет на предыдущую вкладку, которую вы открыли, и переходите, если вы однажды "вернулись" назад. Немного странно, я знаю, но это работает. Вы всегда можете "reset" историю, щелкнув каждую вкладку один раз.
Right
side move: Ctrl + page DownLeft
side move: Ctrl + page UpДополнительно
Eclipse others Short Cuts
CTRL + F6 полезен. Если вы хотите перейти на следующую/предыдущую вкладку, вам нужно сделать CTRL + Page Down/CTRL + Page Up.
XML
или файлом properties
), он переключается между различными представлениями, и вы больше не можете переключаться между вкладками :(
По умолчанию используется Ctrl + F6. Вы можете изменить его, перейдя в Настройки окна. Я обычно меняю его на Ctrl + Tab, то же самое мы используем при переключении вкладок в браузере и других вещах.
Пример последовательности пользовательских клавиш: CTRL + TAB для переключения между visilble Modules или Editors Forward с использованием 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 для переключения между visilble Modules или Editors 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>
3 строки AutoHotKey script (в Windows все равно):
#IfWinActive ahk_class SWT_Window0
^+Tab::^PgUp
^Tab::^PgDn
Поместите это в свою папку автозагрузки (сохраните его как *.ahk, должен быть установлен AutoHotKey), а вкладки Eclipse теперь будут работать как Chrome или Firefox.
Никто не будет читать мой ответ, но в любом случае... Если вы находитесь в Mac OS X, вам понравятся жесты с несколькими касаниями для навигации по истории в Eclipse: http://sourceforge.net/apps/mediawiki/eclipsemultitch/
В окнах, если у вас есть 5-кнопочная мышь, вы можете использовать вперед и назад вместо ALT+Left и ALT+Right.
решаемые!!
Изменить схему на Microsoft Visual Studio
Окно > Параметры > Общие > Клавиши
Посмотрите на раскрывающийся список схем
Моя версия затмения:
Eclipse Java EE IDE для веб-разработчиков.
Версия: Juno Service Release 1 Идентификатор сборки: 20120920-0800
Горячая клавиша для возврата к предыдущей вкладке
Alt + LeftArrow, чтобы вернуться назад.
Я цитирую ответ VonC, добавляя что-то.
Кроме того, Ошибка 206299 открывается для запроса с помощью Ctrl + Tab для переключения вкладок вместо Ctrl + PgUp (PgDn).
Если это не выполнено, вы можете назначить себе привязку клавиш, из окнa > Настройки > Общие > Ключи.
Вы можете установить горячие клавиши в настройках → Общие → Ключи (или просто ввести "ключи" в поле фильтра в верхней части диалогового окна "Настройки".
После выбора раздела "Ключи" найдите "Вперед" и "Предыдущая вкладка" и назначьте им свою собственную горячую клавишу, щелкнув поле "Связывание", а затем набрав горячие клавиши.
Нажмите "Применить" или "ОК", чтобы завершить процесс.
По какой-то причине настройки Eclipse были повреждены, поэтому мне пришлось вручную отредактировать файл /. plugins/org.eclipse.e4.workbench/workbench.xmi
Я должен был предварительно установить Ctrl + Tab на переключение между браузерами и даже сбросить все привязки клавиш в настройках Eclipse, не избавится от ярлыков (они нигде не отображаются). Я открыл вышеупомянутый файл и удалил элементы <bindings>
, помеченные <tags>type:user</tags>
, связанные с неработающими ярлыками.
Один из способов сделать это - использовать VI Plugin, а затем вы просто выполните: n (и: N), чтобы перейти между файлы.
Что я делаю.
Слева направо: ctrl + shift + 9 или ctrl + shift + Page Up или ctrl + Page Up
Слева направо: ctrl + shift + 3 или ctrl + shift + Page Down или ctrl + Page Down
На машине SLES12 вы можете использовать Ctrl + PageUp и Ctrl + PageDown для навигации по вкладкам по умолчанию. Вы всегда можете изменить эти клавиши из окна "Настройки", просмотрев раздел "ключи" в категории "Общие". Этот процесс хорошо объяснил Виктор и VonC выше.
Если вы хотите просто переключаться между текущим и предыдущим выборами, использование CTRL + F6 будет переключать вас туда и обратно. Чтобы перейти на вкладку еще раз в своей истории, вам нужно использовать клавиши UP/DOWN, пока открыто окно "Редакторы". Это работает с Helios (Eclipse 3.6); не уверен, что это верно для более старых версий Eclipse.
Удерживайте CTRL и нажмите F6, пока не достигнете нужного редактора, затем отпустите. Пользовательский интерфейс не так хорош, как выбор окна, но функциональность одинакова.