Скрытые возможности Eclipse
Хорошо, это может быть неубедительный вопрос, но каждый использует эти вещи по-своему. Что является одним из лучших способов сэкономить время для этой IDE.
Том
73 ответа
Не забудьте Ctrl+Shift+L, который отображает список всех сочетаний клавиш (на тот случай, если вы забудете какие-либо из перечисленных здесь).
Ctrl-2 что-то
Кажется, никто не упомянул Ctrl-2 L (назначить новую локальную переменную) и Ctrl-2 F (назначить новое поле), эти изменили способ написания кода.
Ранее я печатал, скажем, (| - местоположение курсора):
Display display = new |
и затем я нажал Ctrl-Space, чтобы завершить вызов конструктора. Теперь я печатаю:
new Display()|
и нажмите Ctrl-2 L, в результате чего:
Display display = new Display()|
Это действительно ускоряет ход вещей. (Ctrl-2 F делает то же самое, но назначает новое поле, а не новую переменную.)
Другим хорошим сочетанием клавиш является Ctrl-2 R: переименование в файле. Это намного быстрее, чем переименование рефакторинга (Alt-Shift-R) при переименовании таких вещей, как локальные переменные.
На самом деле я перешел на страницу настроек Keys и назначил все виды дополнительных быстрых исправлений для Ctrl-2-что-то. Например, теперь я нажимаю Ctrl-2 J, чтобы разделить / объединить объявление переменной, Ctrl-2 C, чтобы извлечь внутренний класс в верхний уровень, Ctrl-2 T, чтобы добавить объявление throws в функцию, и т. Д. Есть множество назначаемых быстрых исправления, выберите любимые и назначьте их комбинациям клавиш Ctrl-2.
Шаблоны
Еще одна моя любимая в моем шаблоне "npe", определенная как:
if (${arg:localVar} == null)
throw new ${exception:link(NullPointerException,IllegalArgumentException)}("${arg:localVar} is null");
Это позволяет мне быстро добавлять проверки пустых аргументов в начале каждой функции (особенно те, которые просто сохраняют аргумент в поле или добавляют его в коллекцию, особенно конструкторы), что отлично подходит для раннего обнаружения ошибок.
Смотрите другие полезные шаблоны на сайте http://www.tarantsov.com/eclipse/templates/. Я не буду перечислять их всех здесь, потому что их много, и потому что я часто добавляю новые.
завершение
Несколько приемов завершения кода:
- поддержка верблюда упоминается в другом ответе: наберите cTM, получите currentTimeMillis
- конструктор по умолчанию: в объявлении класса без конструктора по умолчанию нажмите Ctrl-Space, первым выбором будет его создание
- перегрузка: в объявлении класса начните вводить имя метода, который вы можете перегрузить, Ctrl-Space, выберите один
- создание геттера / сеттера: введите "get", Ctrl-Space, выберите геттер для создания; то же самое с "есть" и "набор"
Назначить на новое поле
Вот как я добавляю поля.
Если у вас еще нет конструкторов, добавьте их. (Ctrl-пробел в любом месте объявления класса, выберите первое предложение.)
Добавить аргумент (| это позиция курсора):
public class MyClass { public MyClass(int something|) { } }
Нажмите Ctrl-1, выберите "назначить новое поле". Ты получаешь:
public class MyClass { private final Object something; public MyClass(Object something) { this.something = something; } }
При необходимости добавьте проверку нулевого указателя (см. Шаблон "npe" выше):
public class MyClass { private final Object something; public MyClass(Object something) { npe| this.something = something; } }
Нажмите Ctrl-Space и получите:
public class MyClass { private final Object something; public MyClass(Object something) { if (something == null) throw new NullPointerException("something is null"); this.something = something; } }
Отличная экономия времени!
ctrl-shift-r и его приятель ctrl-shift-t, чтобы открыть ресурс или тип, соответственно. Ресурсы включают все файлы в ваших открытых проектах (включая файлы, отличные от java), а типы включают типы java либо в ваших проектах, либо в библиотеке, включенной в проекты.
Crtl+1 мой любимый. Быстрые исправления для красных загогулинов.
Он также находится в меню "Правка" -> "Быстрое исправление".
Ctrl+Shift+O, чтобы организовать импорт, который будет красиво отформатировать их, удалить ненужный импорт и добавить отсутствующий импорт.
Ctrl-J запускает пошаговый поиск.
Нажмите Ctrl-J, затем начните печатать. Используйте вверх / вниз, чтобы найти предыдущие / следующие экземпляры того, что вы набрали.
Ctrl-Shift-J ищет в обратном направлении.
Введите 'syso', затем нажмите Ctrl+Space, чтобы развернуть его до System.out.println().
Трес пригодится.
CTRL+3 вызывает список опережающего ввода любой команды меню.
- CTRL-SHIFT-g: находит использование метода или поля под курсором, абсолютно необходимого для понимания кода
- CTRL-F6: перемещаться между списком открытых окон редактора, если вы просто наберете его один раз и отпустите, чтобы переключиться обратно в предыдущее окно редактора, последовательное выполнение этого является хорошим способом перехода назад и вперед
- CTRL-t: на классе или методе покажет вам иерархию типов, очень полезную для поиска реализаций интерфейсного метода, например
Нажатие на тип возврата в объявлении метода подсвечивает все точки выхода метода.
например:
1: public void foo()
2: {
3: somecode();
4: if ( blah ) return;
5:
6: bar();
7: }
щелчок по пустоте выделит возврат в строке 4 и закрытие } в строке 7.
Обновление: это даже работает для блоков try{} catch. Если вы поместите курсор на исключение в блоке catch, и eclipse выделит возможные методы, которые могут вызвать это исключение.
Завершение кода поддерживает CamelCase, например, набор текста CWAR
покажет результат для ClassWithAReallyLongName
, Начните использовать эту функцию, и вы никогда больше не введете другое длинное имя класса.
(части скопированы из другого ответа, потому что я думаю, что ответы с одной подсказкой лучше всего подходят для опроса)
Alt-Up Arrow перемещает текущее выделение вверх на строку, Alt-Down Arrow перемещает его вниз. Я также все время использую Alt-Shift-Up/Down Arrow. Ctrl-K и Ctrl-Shift-K очень удобны для поиска следующего / предыдущего вхождения текущего выделения (или последнего поиска, если ничего не выделено).
Существует возможность автоматически разместить открывающую фигурную скобку и точку с запятой в "правильном" положении. Вам нужно будет включить это - выберите Window/Preferences и введите "скобка" в поле поиска - должно быть легко найти (без затмения на этом компьютере). Эффект:
- Ввод точки с запятой в любом месте строки поместит ее в конец строки (как в word/openoffice: Backspace, если вы хотите, чтобы он был в исходном месте)
- Ввод открывающей фигурной скобки, когда вы находитесь внутри другой пары скобок, поместит ее в конец этой строки - как в этом примере
("|" - курсор):
if(i==0|)
набрав "{", вы получите
if(i==0) {|
Расширение хиппи /Word Complete, afaik, вдохновленный Emacs: автоматически завершит любое слово в любом редакторе на основе других слов в этом файле. Автозаполнение внутри строковых литералов в коде Java, в файлах XML, везде.
Alt + /
Абсолютно, Ctrl+Q, чтобы перейти к последнему месту редактирования. Это очень полезно только после того, как его прервут по телефону, босс или другие.
Alt-Shift-R означает переименование, а не рефакторинг. Рефакторинг - более общий термин (как определено в книге).
Тем не менее, это один из моих любимых рефакторингов. Другие включают в себя:
Alt-Shift-M: метод извлечения (когда выбран блок кода или выражение)
Alt-Shift-L: извлечь локальную переменную (когда выбрано выражение)
Извлечение локальной переменной особенно полезно, когда я не помню (или не набираю) тип результата метода. Если у вас есть метод JdbcTemplate createJdbcTemplate()
в своем классе напишите такой код:
void someQuery() {
createJdbcTemplate()
}
Выберите выражение createJdbcTemplate()
нажмите Alt-Shift-L, введите имя переменной и нажмите ввод.
void someQuery() {
JdbcTemplate myTemplate = createJdbcTemplate();
}
Alt+Shift+ Стрелкавверх делает эскалацию выделения. Alt+Shift+Down делает наоборот.
Ctrl + Shift + M: изменяет статический метод или ссылку на статический атрибут класса на статический импорт.
До
import X;
...
X.callSomething();
После
import static X.callSomething;
...
callSomething();
Никто еще не упомянул лучший. Нажмите на название класса или метода и нажмите Ctrl+T.
Вы получаете быструю иерархию типов. Для имени класса вы видите всю иерархию классов. Для имени метода вы получаете иерархию, показывающую суперклассы и подклассы, причем реализации этого метода отличаются от абстрактных упоминаний или классов, которые не упоминают метод.
Это очень важно, когда вы находитесь в объявлении абстрактного метода и хотите быстро увидеть, где оно реализовано.
F3 был моим любимым, открывает определение для выбранного элемента.
Ctrl+Shift+R имеет интересную особенность, вы можете использовать только заглавные буквы верблюда из класса при поиске (например, ввод CWAR покажет результат для ClassWithAReallyLongName).
Alt+Shift+W > Package Explorer облегчает жизнь при просмотре больших проектов.
CTRL + ПРОБЕЛ, для чего угодно, где угодно.
Генерация геттеров и сеттеров.
Создавайте конструкторы, используя поля
Метод извлечения...
Refactor-> Rename
CTRL + O для быстрого наброска. CTRL + O + CTRL + O для унаследованного контура.
F4 для отображения иерархии типов
Откройте Call Hierarchy, чтобы отобразить, откуда вызывается метод.
CTRL + SHIFT + T, чтобы открыть тип Java
CTRL + SHIFT + R, чтобы открыть любой ресурс.
ALT + влево или вправо для перехода вперед или назад по местам редактирования в ваших документах (удобная навигация)
Переопределите / Реализуйте методы, если вы знаете, что собираетесь использовать много методов (в противном случае CTRL+SPACE лучше для одного выбора за раз.
Refactor-> Extract Interface
Refactor-> Подтянуть
Refactor->Push вниз
CTRL+SHIFT+O для упорядоченного импорта (при вводе общего имени класса, такого как Map, нажатие CTRL+SPACE и выбор соответствующего класса импортирует его непосредственно для вас).
CTRL + SHIFT + F для форматирования (хотя встроенный форматировщик Eclipse может быть немного умнее для длинных строк кода)
РЕДАКТИРОВАТЬ: Ах да, некоторые отладки:
F5: Шагните (покажите мне детали!)
F6: Перешагни (я верю тебе, к следующей части...)
F7: Выйти (я думал, что мне не безразличен этот метод, но оказывается, что нет, вытащи меня отсюда!)
F8: Возобновить (перейти до достижения следующей точки останова)
CTRL + SHIFT + I: проверить выражение. CTRL+SHIFT+I+CTRL+SHIFT+I: создать выражение наблюдения для проверенного выражения.
Условные точки останова: щелкните правой кнопкой мыши точку останова, и вы можете установить возникающее условие, которое запускает ее прерывание выполнения программы (здесь доступна контекстная помощь с Ctrl + Пробел!)
F11 - последняя запущенная отладка (приложение)
CTRL + F11 - запустить последний запущенный (приложение)
Eclipse позволяет вам устанавливать точки останова в зависимости от того, где происходит исключение.
Вы получаете доступ к опции через "J!" http://help.eclipse.org/stable/topic/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/elcl16/exc_catch.png значок в окне отладки.
http://blogs.bytecode.com.au/glen/2007/04/06/images/2007/AddExceptionWindow.png
В официальной теме справки " Добавление точки останова Java Exception " есть больше об этом.
- Опция Uncaught Exception - приостанавливать выполнение, когда исключение того же типа, что и точка останова, выбрасывается в неперехваченном месте.
- Опция Caught Exception должна приостанавливать выполнение, когда исключение того же типа, что и точка останова, выбрасывается в захваченном месте.
- не забудьте исключить точку останова на подклассе этого исключения:
приостановить выполнение при обнаружении подклассов типа исключения.
Например, если точка останова исключения дляRuntimeException
настроен для приостановки на подклассах, он также будет вызванNullPointerException
,
Сочетание клавиш без клавиатуры заключается в использовании наборов коммитов в вашем представлении Team->Synchronize для организации ваших изменений перед фиксацией.
Установите для набора изменений значение по умолчанию, и все изменения, которые вы вносите в файлы, будут помещены в этот набор, что позволит легко увидеть, что вы изменили во время работы с конкретным дефектом / функцией, а также другие изменения, которые были у вас во время тестирования и т. Д.
Ctrl+Alt+H на методе, чтобы получить иерархию вызовов для него. Быстрый способ увидеть, откуда он вызывается.
Ctrl+Shift+L покажет вам все доступные в данный момент сочетания клавиш
Не так скрыто, но ИМО лучший трюк.
Предполагая настройки по умолчанию (и вы не добавили новые фрагменты)
Выделите (или выделите) текст (строку или переменную)... Нажмите Ctrl+ Пробел. Hit End+Enter. запускается фрагмент "sysout", который оборачивает выделение как его параметр.
например.
"hello world!"
becomes
System.out.println("hello world!");
Мне так нравится, что я реализовал похожий фрагмент для Android Toast и Log.i() ОГРОМНАЯ экономия времени во время ручной отладки....