Pull to refresh

Comments 75

Я написал о конфликте. Если изменить горячие клавиши для вызова Spotlight. Ctrl+Space начинает работать в Eclipse. У меня теперь Spotlight — Ctrl+Cmd+Space
Можно переопределить в настройках, например на option+space
Alt + Space на маке, но у меня очень криво работает. Дополняет взятым с потолка значением. Не могу взять толк, почему на linux дома работает нормально.
Я перенастроил на Esc, как в Xcode…
Вообще, это проблема, метаться между xcode и eclipse.
Приходится переносить комбинации xcode на eclipse, благо, он довольно гибкий.
Хоть и монструозный
Перешел на Eclipse из Netbeans IDE. Первые две недели из моей комнаты сыпалась сплошная ругань, особенно когда случайно нажимал Ctrl+B вместо вставки) Теперь более-менее привык, настроил всё что мог под интерфейс Netbeans. Удобно. За статью спасибо, положу на видное место, буду изучать.
А почему решили переключиться с NetBeans на Eclipse?
Под Android всё-таки лучше на Eclipse писать.
не холивара ради, но в eclipse, в контексте andoird разработки, больше удобств.
Я вчера ночью впервые поставил Eclipse (до этого NetBeans использовал). Так вот: Хабр! ты следишь за мной?!
Alt+( left right )
⌘+( [ ] )
Перемещение в предыдущее/следующее место просмотра в редакторе

Отдельное спасибо за это. Столько лет пользуюсь эклипсом и не знал о данной функциональности. А ведь мне этого так не хватало периодически…
Хм. Кстати, если на мыши есть кнопки браузерной навигации (назад/вперёд), то они работают точно так же, намного удобнее, чем на клаве.
А уж если на мыши хватает допкнопок и на них подвесить ещё и ctrl+c и ctrl+v, то потом без этой мыши вообще жить нельзя, настолько это удобно =)

ps: logitech g700 =)
Использовал большинство указанных хоткеев. Хотелось использовать больше, а в eclipse много действий по дефолту не выставлены, а свои ставить лень было. Проблема решилась переходом на Intellij IDEA.
Спасибо за статью
Вот, кстати, бывает же. Года три использовал параллельно эклипс и идею (для разных проектов). Идея вроде и хорошая, для javaEE — даже кое в чём удобнее эклипса, хотя и вызывает противоречивые чувства, но для не-EE — однозначно эклипс рулит. Вот сколько слышал отзывов, народ после эклипса на идею переходит и назад не хочет, а вот мне она не зашла.
В описании хоткея для «Перейти к последнему месту редактирования» (очень удобная вещь, кстати) присутствует ошибка: для Мака комбинация клавиш должна быть Ctrl + Q, а не Cmd + Q, так как в Mac OS Cmd + Q — это системный хоткей для безусловного закрытия приложения.
При переходе с Windows на Mac OS этот факт стоил мне большого количества нервных клеток, поскольку этот быстрый переход я использовал очень часто и периодически рефлекторно закрывал Eclipse )
Спасибо, проглядел. Про Ctrl+H вспомнил, а про Ctrl+Q забыл. Как доберусь до мака исправлю. Боюсьисправлять из под Windows — вдруг кодировка знаков слетит.
Также ⌘+⇧+/ у меня открывает меню Help -> Search. Настройки хоткеев в системе оригинальные.
Не нашел Ctrl + D (здесь и далее — Win): удаление строки (или нескольких выделенных строк). При редактировании незаменимо.
А Ctrl + L (показ списка доступных хоткеев и вызов меню настройки хоткеев при повторном нажатии) — вообще самый нужных хоткей для новичков.
Также для упрощения читабельности части кода в огромных файлах настроил Alt + Shift + F на форматирование выделенного фрагмента. Таким образом, не рушил legacy-код, отформатированный неправильно, но и не терпел по 2 минуты, пока форматируется файл на 15к строк.
Ctrl+Shift+L вы имели в виду.
Ctrl+L — показать строку по номеру.
Прошу прощения, да, Ctrl + Shift + L. Полгода уже Эклипс почти не открываю (отдалился от девелопмента), подзабыл.
Эхх… Ещё бы в PDT это всё-всё зафигачили :(

А так тока недавно начал «Open resource» юзать — доволен.

Но всё перекрывает team-инструменты — diff`ы, ветки, git`ы и особенно — mylyn. То, что ещё пока в любимом некоторыми редакторе ещё и близко нету :)
⌘+⌥+A (Alt+Ctrl+A) — переключение между обычным выделением и вертикальным блоком
Спасибо, мне не хватало этой фичи!
Также нужно упомянуть про Ctrl+F1..12, среди них много постоянно используемых хоткеев.
Eclipse, наверное, самый неудобный редактор для java, если сравнивать с NetBeans/Idea, самое неприятное это диалог «найти/заменить» в отдельном окне для текущего документа это что-то с чем-то.
Ну ещё и горячие клавиши работают только в английской раскладки, но это только моя проблема, наверное.
Если Вам нужно только «искать/заменять», то, вероятно, Eclipse не самый лучший для Вас. Лично мне он был слегка противен и сложен в период, когда я пользовался NetBeans. Потом мне нужно было поработать с проектом, изначально созданным в Eclipse и привязанным к его плагинам. Мне очень понравилась его расширяемость и гибкость для разных видов смешанных проектов. Говорят, Idea лучше, но у меня пока не было ни желания, ни потребности устанавливать ее.
P. S. с проблемой хоткеев и раскладок не сталкивался.
Это проблема только для Eclipse под Linux, впрочем, легко решаемая.
Обычным «Найти/заменить» я пользуюсь редко. Поиск часто подразумевает поиск метода/поля/подкласса. Для этого есть Ctrl+O. Замена по файлу или многим файлам обычно предполагает переименование метода, класса, переменной и т. д. Alt+Shift+R с этим прекрасно справляется без лишних окон. Если у вас в Java-коде что-то часто повторяется, и это не идентификатор, вам следует задуматься, правильно ли вы вообще программируете.
Если вы чего-то не делаете, это свидетельствует скорее о вашей ограниченности, а не о том, что делать это — неправильно. Очень частый пример использования поиска/замены по тексту — это как раз рефакторинг legacy кода. Когда в коде есть куча похожих сущностей и из них надо сделать массив/enum. Или, например, вы пишете какой-то тест и нужно захардкодить какие-то пары expected-actual значений (если их недостаточно много для того, чтобы заводить отдельный файл).
Это навскидку, а таких примеров очень много.
Из неперечисленного часто использую следующее:
Alt+Shift+T — контекстное меню рефакторинга, дальше подходящую подчёркнутую кнопку (часто Pull Up или Move type to new file)
Alt+Shift+Z — контекстное меню шаблонов, дальше подходящую цифру (чаще всего для try-catch блоков)
Alt+Shift+S — контекстное меню генерации кода, дальше подходящую подчёркнутую кнопку (часто generate constructor; generate setters & getters; override/implement methods).
Alt+Shift+W — контекстное меню перехода к навигаторам, дальше подходящую подчёркнутую кнопку.
Ребят, а знает кто-нибудь как изменить время, через которое появляется всплывающая подсказка (когда mouse hover)?
А то на старой версии стояла какая-то задержка, а сейчас мгновенно открывается. В итоге просто по экрану мышкой провести целое приключение)
Eclipse страшно тормозной. И все IDE на нем в моих проектах рано или поздно доходят до такого состояния, когда процессы загрузки и подготовки IDE к работе занимают непомерно много времени, что ощутимо мешает работать.
Пробовал Zend Studio, Eclipse for pdt, другие сборки eclipse.
Пришлось уйти на PhpStorm. Он работает значительно быстрее, что, похоже, достигается более высоким приоритетом приложения, т.к. от PhpStorm'a часто начинают подвисать другие приложения, что случается впрочем редко и в среднем PhpStorm работает значительно эффективнее.

Есть ряд багов при удалённо по sftp — долгое время мы с коллегой перетирали друг друга,
потому что в PhpStorm косячила проверка изменения контента на сервере. Затем вышел багфикс (пару месяцев как), стало лучше.
Кстати именно из-за требований к удаленным подключениям у меня лично выбор IDE довольно небольшой — мало кто нормально умеет работать по sftp/ssh/ftp. Netbeans например не умел, когда я последний раз им интересовался. А это довольно важное требование — при более менее серьезной сложности проекта просто нет возможности на локальной машине размещать скрипты, окружение сильно несовместимо с десктопом.
Странно, что у вас IDE загружается/выключается. По-мойму щас уже не надо комп включать/выключать :)

А про окружение — виртуалки и все такое? Плюс filssync` или обратный маунт. И это не факт, что уровень IDE д.б.
Нет, не виртуалки. Просто огромный многомодульный проект, где у каждого модуля разные ЯП, ОС и прочее. Доходит до того, что версии одного и того же ЯП бывают разные. Свести их все одном компе, к тому же на десктопе, бывает крайне сложно.
Дык как раз виртуалки то для этого и придумали?

Или с ними никак?
Опять-таки, если на десктопе — тормоза. В любом случае рано или поздно приходим к девелоперскому серверу.
Она подлая в-основном память жрёт. Хотя ось какая у вас? По идее яве пофиг д.б. — ставьте на виртуалку максимально урезанную фрю или дебиан и можно так попробовать.

А вот девсервер — это самое то, да :)
Ещё если участников много, виртуалки нужно делать каждому.
И суммарных расход ресурсов от всех виртуалок получается гораздо больший, чем при организации одного дев-сервера на каждый проект. А если одна виртуалка на всех участников — со сути тот же самый дев-сервер.

ОСы практически любые, т.к. проект — хостинг на разных панелях и осах. Кроме клиентских серверов, есть инфраструктурные, там centos, freebsd, gentoo, ubuntu server.
Дык сделайте! Дев — контейнер а-ля xen, а уже каждый со своей виртуалкой. Хоть 10. Облако и всё такое.
Есть ряд багов при удалённо по sftp — долгое время мы с коллегой перетирали друг друга,

У вас одна директория проекта на двоих? Мои вам соболезнования…
В Eclipse есть плагин Remote Systems, работающий и по ssh и по ftp. Правда, есть проблема — с ним не работает subversive SVN, поэтому я использую file synchronization в папку. открытую через Samba.
Зачем обижаешь, слушай? (с)

Конечно папка не одна на двоих, папки разные. Есть проблема у PhpStorm'a, что он не видит изменений на сервере. Например коллега сделал на сервере svn update, открывает PhpStorm и отображает контент предыдущей версии (который был ранее скачан PhpStorm'ом c сервера). И не предлагает скачать новый. А при сохранении просто затирает файл на сервере этим старым кешированным кодом + новыми правками, который коллега сделал после открытия IDE.
Видимо у вас настроен deployment по SSH, поэтому PhpStorm не может увидеть изменения, да и как ему это сделать? Он ведь хранит локальную копию и по Ctrl + S или командой делает синхронизацию с сервером. У вас два варианта: первый — отказаться от серверного svn и использовать плагин для PhpStorm и второй — использовать вместо ssh сетевую шару через samba.
Ну вообще у него есть фичи «warn when uploading newer file» и «notify about remote changes», которые были в шторме с самого моего знакомства с ним, т.е. шторм не должен был переписывать более новые файлы и должен был уведомлять удаленных изменениях, с чем например всегда успешно справлялся Eclipse.

А в одном из последних обновлений шторма проблема практически исчезла — при открытии файла в IDE PhpStorm проверяет его контент на сервере и, если изменился, предлагает сделать download или merge. «Практически», потому что по каким-то странным критериям он иногда эту проверку всё-таки не делает (довольно редко). Ещё до этого полезного обновления с данной проблемой мы боролись технологией работы: если на сервере сделали svn up, то сначала скачиваем контент, и только потом приступаем к правкам; перед коммитом и просто периодически делаем svn diff и смотрим что там изменилось, на случай какого-либо регресса.
Использовал Eclipse года 4 для Java, Android, C и немного Python. Сейчас перешел на ST2, Eclipse только для отладки. Очень напрягает отсутствие fuzzy-поиска и автодополнения и множество раздражающих панелей/окон, которые норовят отобрать фокус у панели редактирования. Плюс ко всему общая тормознутость и монструозность этой IDE.

Из полезных хоткеев, в дополнение к упомянутым в статье, могу назвать следующие:
  • Ctrl+F6 / Ctrl+Shift+F6 — следующий/предыдущий редактор в стеке (аналог Alt+Tab для окон).
    Поскольку более неудобных сочетаний для такой часто используемой операции (ИМХО) придумать тяжело, поэтому имеет смысл переназначить их на Ctrl+Tab / Ctrl+Shift+Tab (или на Alt+` / Alt+Shift+` для CDT, чтобы не было конфликтов с переключением между source/header).
  • Ctrl+Shift+Up / Ctrl+Shift+Down — переход к следующей/предыдущей функции (в CDT, думаю, в Java аналогично для методов)
  • Ctrl+J / Ctrl+Shift+J — инкрементальный поиск начиная от курсора (без использования окна поиска, как при Ctrl+F)
Ctrl+Page Up/Page Down — так же следующий/предыдущий редактор.
Alt+Page Up/Page Down — следующая/предыдущая вкладка в редакторе. Например андроидный манифест или Graphical Layout / Xml editor в редакторе лэйаутов.
Мне не хватает быстрых закладок (bookmarks), раньше ставил какой-то плагин.
Никто не поднимет эту тему — может они устарели и есть способ удобней?
а чем просто закладки не устраивают? которые на левом поле правой кнопкой ставятся
Это не удобно и медленно, похоже на копирование/вставку текста мышью, когда удобнее это делать клавиатурой.
Недавно начал использовать данные сочетания клавиш. Очень продуктивно.
Shift + Enter (переназначил на Ctrl + Enter ) — вставить строку ниже
Shift + Ctrl + Enter — вставить строку выше

Так же полезный хоткей — Ctrl + F7 — следующий view. Иногда помогает вообще не использовать мышь.

Еще рекомендую в настройках проставить следующие галочки:
Java -> Editor -> Typing:
Automatically insert at correct position: Semicolon, Braces
Больше скорее относящееся просто к эклипсу — crtl + 3 — вызывает меню быстрого доступа ко всем местам эклипса. Начиная печатать например de — эклипс подскажет debug. Использую не часто, но позволяет не бегать по менюшками эклипса.
При повторном нажатии Ctrl+T разворачивает иерархию в обратную сторону и показывает реализованные интерфейсы.
Именно такими должны быть хорошие мануалы.
Я обнаружил немного раздражающие проблемы с эклипсом:
1) Невозможно назначить разные хоткеи для «Закомментировать строку» и «Раскомментировать строку». При попытке применить назначеный хоткей (любой) — строка удаляется.
2) Кривое выравнивание кода при копипасте — вне зависимости от настроек.

Может, кто-нибудь вкурсе решения?

По сабжу — переполз на Эклипс с Keil uVision (правда на CDT Indigo Eclipse — но это не так важно) — просто небо и земля. Большую часть хоткеев обнаружил сам довольно быстро.

Фильтры для ошибок и ворнингов тоже очень удобная штука.
Ctrl + Shift + F помойму — форматирование. Плюс настроить свои правила можно.

А вот с хоткеями жёппа бывает — бывает, что «слетают» непонятно почему — особенно когда много плагинов в одном эклипсе.

Именно по этому я отдельно держу сборку для пхп, явы, руби (папета).
Спасибо.
А нельзя ли сделать нормальное форматирование сразу при вставке?
Можно сделать автоматическое форматирование всего документа или измененных строк при сохранения файла.
Имхо это самый лучший вариант. У нас при сохранении происходит автоформатирование, организация импортов и т.д… Эти настройки, как и настройки autoformatter'а являються project specifiс, включены в систему контроля версий и у всех участников проекта одинаковые.
Раз уж описано окно Open Type, имеет смысл добавить, что туда можно ввести только заглавные буквы класса. Например, для поиска класса AbstractDogFactory достаточно ввести ADF.
Также можно использовать *
То же работает почти везде где идет поиск по java-элементам (методы, переменные). Например при автокомплите и Ctrl+O.
Хотелось бы добавить от себя пару полезных штук, которыми сам часто пользуюсь. Сразу извиняюсь, хоткеи для винды:
1. Чтобы почитать документацию о каком-нибудь используемом методе, поставьте курсор на его имя и нажмите Shift+F2.
2. Ctrl+D — удалить текущую строку.
3. Shift+Enter — вставить пустую строку под текущей строкой.
4. Ctrl+Shift+Enter — вставить пустую строку над текущей строкой.
5. Ctrl+I — исправить отступ в текущей строке или в выделенных строках.
Ctrl+M — развернуть текущее окно. Очень удобно на маленьком экране ноутбука
Ctrl+Shift+E — продвинутое окно открытых файлов. Здесь можно закрывать файлы сразу пачками
Спасибо — Ctrl+Q особенно порадовал — не знал

Жить стало лучше, жить стало веселей (с)
Еще из интересного:

Windows->Preferences->Java->Editor->Saver actions-> галка format source code — включаем автоформатирование при сохранении класса.

Windows->Preferences->General->Editors->Close editors automatically — выставляем максимальное количество открытых окно редакторов (у меня пример 12)

Спасибо за статью!

Добавтье Ctrl+Alt+H — иерархия вызовов метода или иерархия обращний к полю. Крайне полезная вещь. Также «понимает», что для Runnable надо показывать кто вызывает конструктор, а не то, кто вызывает run().
Sign up to leave a comment.

Articles