Скрытые возможности 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, выберите геттер для создания; то же самое с "есть" и "набор"

Назначить на новое поле

Вот как я добавляю поля.

  1. Если у вас еще нет конструкторов, добавьте их. (Ctrl-пробел в любом месте объявления класса, выберите первое предложение.)

  2. Добавить аргумент (| это позиция курсора):

    public class MyClass {
        public MyClass(int something|) {
        }
    }
    
  3. Нажмите Ctrl-1, выберите "назначить новое поле". Ты получаешь:

    public class MyClass {
        private final Object something;
        public MyClass(Object something) {
            this.something = something;
        }
    }
    
  4. При необходимости добавьте проверку нулевого указателя (см. Шаблон "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 означает переименование, а не рефакторинг. Рефакторинг - более общий термин (как определено в книге).

Тем не менее, это один из моих любимых рефакторингов. Другие включают в себя:

Извлечение локальной переменной особенно полезно, когда я не помню (или не набираю) тип результата метода. Если у вас есть метод JdbcTemplate createJdbcTemplate() в своем классе напишите такой код:

void someQuery() {
    createJdbcTemplate()
}

Выберите выражение createJdbcTemplate()нажмите Alt-Shift-L, введите имя переменной и нажмите ввод.

void someQuery() {
    JdbcTemplate myTemplate = createJdbcTemplate();
}

CTRL + D - удалить текущую строку

Alt+Up или Alt+Down для перемещения линий

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,

http://help.eclipse.org/stable/topic/org.eclipse.jdt.doc.user/reference/breakpoints/images/ref-breakpoint_suspendsubclass.PNG

Сочетание клавиш без клавиатуры заключается в использовании наборов коммитов в вашем представлении Team->Synchronize для организации ваших изменений перед фиксацией.

Установите для набора изменений значение по умолчанию, и все изменения, которые вы вносите в файлы, будут помещены в этот набор, что позволит легко увидеть, что вы изменили во время работы с конкретным дефектом / функцией, а также другие изменения, которые были у вас во время тестирования и т. Д.

Ctrl+Alt+UP или Ctrl+Alt+DOWN для копирования строк

Ctrl+Alt+H на методе, чтобы получить иерархию вызовов для него. Быстрый способ увидеть, откуда он вызывается.

Alt + Shift + R для рефакторинга и переименования.

Ctrl+Shift+L покажет вам все доступные в данный момент сочетания клавиш

Не так скрыто, но ИМО лучший трюк.

Предполагая настройки по умолчанию (и вы не добавили новые фрагменты)

Выделите (или выделите) текст (строку или переменную)... Нажмите Ctrl+ Пробел. Hit End+Enter. запускается фрагмент "sysout", который оборачивает выделение как его параметр.

например.

 "hello world!"

becomes
System.out.println("hello world!");

Мне так нравится, что я реализовал похожий фрагмент для Android Toast и Log.i() ОГРОМНАЯ экономия времени во время ручной отладки....

Другие вопросы по тегам