Скрытые возможности Eclipse [закрыто]


97

Хорошо, это может быть глупый вопрос, но все используют эти вещи по-своему. Каковы одни из лучших средств экономии времени для этой среды IDE.

Том

Ответы:


139

Не забудьте Ctrl+ Shift+ L, который отображает список всех комбинаций горячих клавиш (на случай, если вы забудете любую из перечисленных здесь).


1
Для новичков, использующих Mac, используйте кнопку COMMAND вместо CTRL для всех команд, перечисленных здесь. Мне потребовалось время, чтобы понять это. Это может кому-то помочь.
— 500865

119

Ctrl-2 что-то

Похоже, никто не упомянул Ctrl-2 L (назначить новой локальной переменной) и Ctrl-2 F (назначить новому полю), они изменили способ написания кода.

Раньше я набирал, скажем (| - расположение курсора):

Display display = new |

а затем я нажал Ctrl-Пробел, чтобы завершить вызов конструктора. Сейчас я печатаю:

new Display()|

и нажмите Ctrl-2 L, в результате получится:

Display display = new Display()|

Это действительно ускоряет работу. (Ctrl-2 F делает то же самое, но назначает новое поле, а не новую переменную.)

Еще один хороший ярлык - Ctrl-2 R: переименовать в файл. Это намного быстрее, чем рефакторинг переименования (Alt-Shift-R) при переименовании таких вещей, как локальные переменные.

На самом деле я пошел на страницу настроек настройки ключей и назначил все виды дополнительных быстрых исправлений для Ctrl-2-something. Например, теперь я нажимаю Ctrl-2 J, чтобы разделить / объединить объявление переменной, Ctrl-2 C, чтобы извлечь внутренний класс в верхний уровень, Ctrl-2 T, чтобы добавить объявление throw в функцию, и т. Д. Есть множество назначаемых быстрых исправления, выберите свои любимые и назначьте их сочетаниям клавиш Ctrl-2.

Шаблоны

Еще один мой любимый вариант в моем шаблоне «npe», определенный как:

if (${arg:localVar} == null)
    throw new ${exception:link(NullPointerException,IllegalArgumentException)}("${arg:localVar} is null");

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

См. Другие полезные шаблоны на сайте www.tarantsov.com/eclipse/templates/ . Я не буду перечислять их здесь, потому что их много и я часто добавляю новые.

Завершение

Несколько приемов завершения кода:

  • Поддержка случая верблюда упоминается в другом ответе: введите cTM, получите currentTimeMillis
  • конструктор по умолчанию: в объявлении класса без конструктора по умолчанию нажмите Ctrl-Space, первым выбором будет его создание
  • перегрузка: в объявлении класса начните вводить имя метода, который вы можете перегрузить, Ctrl-пробел, выберите один
  • Создание геттера / сеттера: введите «get», Ctrl-Space, выберите геттер для создания; то же самое с «is» и «set»

Назначить новому полю

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

  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-Пробел, получите:

    public class MyClass {
        private final Object something;
        public MyClass(Object something) {
            if (something == null)
                throw new NullPointerException("something is null");
            this.something = something;
        }
    }

Отличная экономия времени!


2
CTRL + 2, F и CTRL + 2, L теперь потрясает мой мир. Спасибо
— Джошуа Маккиннон

14
если бы только в вашем шаблоне использовались фигурные скобки ...
— rsp

3
@rsp Извините, я ненавижу вставлять ненужные фигурные скобки. Кстати, в Eclipse есть функция очистки кода, которая может заставить ваш код использовать фигурные скобки любого стиля (всегда или только при необходимости), и он может применять его при сохранении.
— Андрей Таранцов

81

ctrl-shift-r и его приятель, ctrl-shift-t, чтобы открыть ресурс или тип соответственно. Ресурсы включают в себя все файлы в ваших открытых проектах (включая файлы, отличные от java), а типы включают java-типы либо в ваших проектах, либо в библиотеке, включенной в проекты.


6
ctrl + shift + r удобен также для открытия типов, когда вы только что открыли проект, поскольку он не требует индексации.
— boutta

Хорошая точка зрения. ctrl-shift-r не будет работать для открытия типов, которые находятся в ссылочных библиотеках jar; он будет работать только для отдельных файлов (ресурсов) в вашем проекте.
— pkaeding

Это, безусловно, самая полезная функция в Eclipse, которая не так хорошо реализована (т.е. работает медленно) в Netbeans.
— Rahul

60

Crtl+ 1мой любимый. Быстрые исправления красных волнистых линий.

Он также находится в меню «Правка» -> «Быстрое исправление».


2
Ctrl +. (точка) переводит вас к следующей ошибке (красный / желтый волнистый) .... С этими двумя вы находитесь в режиме исправления ошибок. : D
— st0le 01

59

Ctrl+ Shift+ Oдля организации импорта, которая красиво отформатирует их, удалит ненужный импорт и добавит отсутствующий импорт.


6
На днях я заметил, что это можно использовать для организации всего проекта или его частей, а не только одного файла, как я ожидал. Очень полезно.
— Антти Киссаниеми,

Я попробую это сделать, но меняет ли это import java.util. * В импорт, который вам действительно нужен?
— Томас Оуэнс,

Он может изменить импорт. *, Если вы хотите - я считаю, что он настраивается (настройка количества классов для импорта, прежде чем он переключится на. *).
— Даррен Гривз

Эта небольшая комбинация клавиш была одной из основных причин, по которой я изначально начал использовать Eclipse. Так полезно!
— Рич Адамс,

11
@boncey да, это можно настроить. Обратите внимание, что начиная с Eclipse3.3 вы можете попросить Eclipse автоматически организовать импорт во время сохранения (Java> Editor> Save actions)
— Romain Linsolas

48

Ctrl-J запускает инкрементный поиск.

Нажмите Ctrl-J, затем начните печатать. Используйте кнопки вверх / вниз, чтобы найти предыдущие / следующие экземпляры того, что вы набрали.

Ctrl-Shift-J выполняет поиск в обратном направлении.


9
в том же ключе выберите слово и нажмите ctrl-k или ctrl-shift-k, и он будет перебирать выбранные строковые вхождения
— Newtopian

@Newtopian - ctrl-k - один из самых полезных ярлыков для быстрого поиска ссылок в файле.
— RodeoClown 09

37

Введите «syso» и нажмите Ctrl+, Spaceчтобы развернуть его до System.out.println ().

Трес под рукой.


1
В соответствии с этим: syse будет расширен до System.err.println ();
— guerda

Можно настроить любую комбинацию клавиш, проверьте мой ответ ниже
— Равиша


29
  • CTRL-SHIFT-g: находит случаи использования метода или поля под курсором, что абсолютно необходимо для понимания кода
  • CTRL-F6: перемещаться между списком открытых окон редактора, если вы просто наберете его один раз и отпустите, вы переключитесь обратно в предыдущее окно редактора, последовательное выполнение этого - хороший способ перемещаться вперед и назад
  • CTRL-t: в классе или методе покажет вам иерархию типов, что очень полезно для поиска реализаций метода интерфейса, например

1
Я использую 5-кнопочную мышь и сопоставляю F6 с одной из кнопок для быстрой навигации.
— s_t_e_v_e

Таким образом, мышки с несколькими кнопками используются недостаточно. Это хорошая идея. Я просто боюсь, что не научусь этой привычке, и если бы я это сделал, у меня были бы проблемы с переключением между машиной (рабочий стол, рабочий ноутбук, домашний компьютер и т. Д.)
— Борис Терзич

1
Я знаю, что могу изменить это, но я бы хотел, чтобы CTRL-F6 был чем-то другим по умолчанию. Я не могу ударить его одной рукой.
— Альберт

1
F4 также по умолчанию открывает иерархию типов. Красиво и удобно размещено рядом с F3, которая позволяет перейти к определению того, что находится под курсором.
— Майк Дэниелс

5
Очень важно переназначить Ctrl-F6 на Ctrl-Tab. Это очень естественно для понимания, так как это все равно что менять вкладки в браузере.
— espinchi

28

Щелчок по типу возвращаемого значения в объявлении метода выделяет все точки выхода из метода.

например:

1: public void foo()
2: {
3:   somecode();
4:    if ( blah ) return;
5:
6:    bar();
7: }

нажатие на void выделит возврат в строке 4 и закрытие } в строке 7.

Обновление : это работает даже для блоков try {} catch. Если вы поместите курсор на исключение в блоке catch, и eclipse выделит возможные методы, которые могут вызвать это исключение.


Теперь он говорит мне :) полезно ... особенно при чтении длинных ужасных методов ...
— dstibbe

24

Автозавершение кода поддерживает CamelCase, например, при вводе CWARбудет отображаться результат для ClassWithAReallyLongName. Начните использовать эту функцию, и вы больше никогда не наберете длинное имя класса.

(части скопированы из другого ответа, потому что я думаю, что ответы с одной подсказкой / советом лучше всего подходят для опроса)


23

Alt-Up Arrow перемещает текущий выбор на строку вверх, Alt-Down Arrow перемещает его вниз. Я также все время использую Alt-Shift-Up / Down Arrow. Ctrl-K и Ctrl-Shift-K очень удобны для поиска следующего / предыдущего вхождения текущего выделения (или последнего поиска, если ничего не выделено).


22

Есть возможность автоматически поставить открывающую фигурную скобку и точку с запятой в «правильное» положение. Вам нужно будет включить это - Выберите Окно / Настройки и введите «скобку» в поле поиска - должно быть легко найти (на этом компьютере нет затмения). Эффект:

  • Ввод точки с запятой в любом месте строки поместит ее в этот конец строки (как в word / openoffice: Backspace, если вы хотите, чтобы она находилась в исходном месте)
  • При вводе открывающей фигурной скобки, когда вы просто внутри другой пары фигурных скобок, она будет помещена в конец этой строки - как в этом примере

("|" - курсор):

if(i==0|)

ввод "{" сейчас приведет к

if(i==0) {|

20

Hippie expand / Word Complete, afaik, вдохновленный Emacs: автозаполнение любого слова в любом редакторе на основе других слов в этом файле. Автозаполнение внутри строковых литералов в коде Java, в файлах xml, везде.

Alt + /


2
На немецкой клавиатуре это Alt + Shift + 7, потому что / стоит на 7.
— guerda

Вы также можете изменить поведение Ctrl-Space, чтобы включить расширение текста в стиле Alt /
— Юэн Картрайт,

17

Alt-Shift-R означает переименование , а не рефакторинг. Рефакторинг - это более общий термин (как он определен в книге ).

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

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

void someQuery() {
    createJdbcTemplate()
}

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

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

5
обратите внимание, что переименование Alt-Shift-R выполняет «переименование рефакторинга», а не «переименование в файле»
— Скотт Стэнчфилд,

1
Чтобы присвоить результат метода переменной, вы также можете использовать быстрое исправление (Ctrl-1), даже не выбирая вызов метода.
— Йорн

17

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


Немного раздражает то, что Eclipse остановился на этом ярлыке, но NetBeans остановился на ctrl-e.
— Тим Гилберт,

17

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


15

Ctrl+ Shift+ M: изменяет статический метод или ссылку на статический атрибут класса на статический импорт.

Перед

import X;

...
X.callSomething();

После

import static X.callSomething;

...
callSomething();

Хороший! Я должен попробовать это. Вы знаете, есть ли ярлык и для другого пути?
— Йорн

15

Alt+ Shift+ UpСтрелка увеличивает выделение. Alt+ Shift+ Downделает наоборот.


15

Alt+ Upили Alt+ Downдля перемещения строк


Также перемещает несколько строк, если выбрано, и исправляет отступы на лету.
— Harold L

14

Лучшего еще никто не назвал. Щелкните имя класса или метода и нажмитеCtrl + T.

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

Это очень важно, когда вы находитесь в объявлении абстрактного метода и хотите быстро увидеть, где он реализован.


Ха, собирался добавить это - так полезно при работе с базой кода, которая использует интерфейсы для всего!
— Даррен Гривз

просто в классе нажмите F4, он перечисляет иерархию во вкладке
— Равиша

13

F3 был моим любимым, открывает определение выбранного элемента.

Ctrl+ Shift+ Rимеет интересную особенность: при поиске вы можете использовать только прописные буквы верблюда из класса (например, ввод CWAR покажет результат для ClassWithAReallyLongName).

Alt+ Shift+ W> Package Explorer упрощает жизнь при просмотре больших проектов.


1
Этот трюк с верблюжьим случаем также работает при написании кода. Введите CWAR в редакторе, затем нажмите CTRL-пробел, и он расширится до ClassWithAReallyLongName. Я собираюсь добавить это как отдельный совет, если его еще нет.
— Даррен Гривз

Уловка Camel Case также работает в диалоговом окне Ctrl + Shift + T, и я считаю его настолько полезным, что я больше не навиагаю на классы, если знаю их имена. Это также одна из тех уловок, которые заставляют вашего партнера воскликнуть: «Ух ты! Как ты это сделал?» когда вы соединяетесь.
— banjollity

Буквально минуту назад мне было интересно, есть ли ярлык, который мог бы вызвать проводник пакетов без необходимости нажимать на свернутый значок. Спасибо за это :-)
— guyumu

Альтернатива для F3: Control + щелкните класс, функцию или переменную, чтобы перейти к их объявлению. Это также работает для тегов Javadoc @link; интерактивные элементы подчеркиваются при наведении на них курсора.
— cthulhu,

10

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

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


10

CTRL + ПРОБЕЛ, для чего угодно и где угодно.

Сгенерируйте геттеры и сеттеры.

Создание конструкторов с использованием полей

Метод извлечения ...

Рефакторинг-> Переименовать

CTRL + O для быстрого наброска. CTRL + O + CTRL + O для унаследованного контура.

F4 для отображения иерархии типов

Откройте иерархию вызовов, чтобы отобразить, откуда вызывается метод.

CTRL + SHIFT + T, чтобы открыть тип Java

CTRL + SHIFT + R, чтобы открыть любой ресурс.

ALT + влево или вправо для перехода вперед или назад по местам редактирования в ваших документах (простая навигация)

Переопределить / реализовать методы, если вы знаете, что собираетесь использовать множество методов (в противном случае CTRL + SPACE лучше для выбора по одному.

Рефакторинг-> Извлечь интерфейс

Рефакторинг-> Подтянуть

Рефакторинг-> Нажать

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 - запустить последнее запущенное (приложение)


10

Точка останова при исключении

Eclipse позволяет вам устанавливать точки останова в зависимости от того, где возникает исключение.
Вы получаете доступ к опции через "j!" alt текст 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 » есть дополнительная информация.

  • Параметр «Неперехваченное исключение» предназначен для приостановки выполнения, когда исключение того же типа, что и точка останова, выбрасывается в неперехваченном месте.
  • Параметр Caught Exception должен приостановить выполнение, когда исключение того же типа, что и точка останова, выбрасывается в захваченном месте.
  • не забудьте приостановить точку останова по исключению в подклассе этого исключения :
    чтобы приостановить выполнение при обнаружении подклассов типа исключения.
    Например, если точка останова для исключения RuntimeExceptionнастроена для приостановки в подклассах, она также будет запускаться файломNullPointerException .

альтернативный текст http://help.eclipse.org/stable/topic/org.eclipse.jdt.doc.user/reference/breakpoints/images/ref-breakpoint_suspendsubclass.PNG


9

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



8

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


1
Alt + Shift + R - это Refactor-> Rename. В Eclipse есть несколько других сокращений рефакторинга.
— MetroidFan2002,

7

Вот моя коллекция самых полезных сочетаний клавиш для Eclipse 3:

Eclipse 3 Favorite Keyboard Shortcuts. 
by -=MaGGuS=-

Navigate:

•   Ctrl + Shift + L – Shows useful keyboard shortcuts in popup window 
•   Ctrl + H – Search.
•   Ctrl + K – Goes to next search match in a single file. Shift + Ctrl + K – goes to previous match.
•   F3 - Goes to ‘declaration’ of something. Same as Ctrl + Click.
•   Ctrl + Shift + G - Use this on a method name or variable. It will search for references in the code (all the code) to that item.
•   Ctrl + O – Shows outline view of the current class or interface.
•   Ctrl + T – Shows class hierarchy of the current class or interface. F4 – shows the same in separate tab.
•   Ctrl + Shift + T - Open Type. Search for any type globally in the workspace.
•   Ctrl + Shift + R – Open Resource. Search for any file inside workspace.
•   Ctrl + J – Incremental search. Similar to the search in firefox. It shows you results as you type. Shift + Ctrl +J - Reverse incremental search.
•   Ctrl + Q – Goes to the last edit location.
•   Ctrl + Left|Right – Go Back/Forward in history.
•   Ctrl + L – Go to line number.
•   Ctrl + E – This will give you a list of all the source code windows that are currently open. You can arrow up or down on the items to go to a tab.
•   Ctrl +PgUp|PgDown – Cycles through editor tabs.
•   Ctrl + Shift + Up|Down - Bounces you up and down through the methods in the source code.
•   Ctrl + F7 – Switches between panes (views).
•   Ctrl + ,|. – Go to the previous/next error. Great in combination with Ctrl + 1.
•   Ctrl + 1 on an error – Brings up suggestions for fixing the error. The suggestions can be clicked.
•   Ctrl + F4 – Close one source window.

Edit:

•   Ctrl + Space – Auto-completion.
•   Ctrl + / – Toggle comment selected lines.
•   Ctrl + Shift + /|\ – Block comment/uncomment selected lines.
•   Ctrl + Shift + F – Quickly ‘formats’ your java code based on your preferences set up under Window –> Preferences.
•   Ctrl + I – Correct indentations.
•   Alt + Up|Down – move the highlighted code up/down one line. If nothing is selected, selects the current line.
•   Ctrl + D – Delete row.
•   Alt + Shift + Up|Down|Left|Right – select increasing semantic units.
•   Ctrl + Shift + O – Organize Imports.
•   Alt + Shift + S – Brings up “Source” menu.
o   Shift + Alt + S, R – Generate getter/setter.
o   Shift + Alt + S, O – Generate constructor using fields.
o   Shift + Alt + S, C – Generate constructor from superclass.
•   Alt + Shift + T – Brings up “Refactor” menu.
•   Alt + Shift + J – Insert javadoc comment.
•   F2 – Display javadoc popup for current item. Shift + F2 – Display javadoc in external browser.

Run/Debug:

•   F11 / Ctrl + F11 – Execute/debug.
•   Ctrl + Shift +B – Toggle breakpoint.
•   When paused: F5 – Step into, F6 – Step over, F7 – Step out, F8 – Resume.
•   Ctrl + F2 – Terminate.

EOF

7

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

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

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

например.

 "hello world!"

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

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


Ого, как я не узнал об этом? Спасибо!
— MatrixFrog 02

Хм, когда я нажимаю «End», он попадает только в конец выбранной строки, а не в конец списка предложений.
— serg 02

Может, вам стоит нажать дополнительную клавишу «вниз», прежде чем вы нажмете «конец» ... :(
— st0le
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.