Эффективное использование Eclipse

Владимир | | Eclipse, PHP, Web разработка.

eclipse tips tricks

Многие считают, что залог эффективной работы – это хорошие инструменты. В принципе, это действительно так. Во всяком случае, разработчики таких инструментов всячески стараются нас в этом убедить 😉 .

Но, на самом деле, хороший редактор или IDE это даже не половина дела. Гораздо важнее умение его использовать. Особенно сейчас, когда даже текстовые редакторы имеют сотни функций.

Я ничего не имею против большого количества возможностей, но часто возникает ситуация когда за «деревьями леса не видно». И поиск нужной функции превращается в блуждание по вложенным меню и диалогам.

Самое обидное – это когда пользуешься программой полгода, а потом натыкаешься на какую-нибудь полезную возможность и думаешь: «Сколько я времени мог сэкономить, если б знал о ней раньше».

В этой статье я хочу рассказать о своем опыте использования Eclipse для разработки на PHP.

Прежде всего, о самой IDE. Eclipse вообще задуман как многоцелевая платформа. Т.е. вы сможете работать с любым языком программирования, если установите подходящие плагины. Естественно, плагинов очень много и сразу выбрать нужные не просто.

Поэтому возник проект EasyEclipse, который занимается распространением дистрибутивов с уже подготовленным набором плагинов для разных языков программирования (в т.ч. и для PHP).

Теперь переходим к самой IDE.

Описывать подробно работу в Eclipse я не буду, да и вряд ли у меня это получится. Разве что, книгу начну писать 😉 . Но о некоторых возможностях, которые позволяют ускорить работу, расскажу.

Шаблоны.

Это основное средство увеличения скорости работы. Принцип такой – пишите фрагмент кода и присваиваете ему имя, набираете это имя в редакторе, жмете Ctrl+Space и Eclipse автоматически вставляет ваш код.

Два своих набора шаблонов я уже выкладывал в этом блоге (здесь и здесь). Там же описана их установка. Не стоит забывать и о встроенный шаблонах.

Сниппеты (Snippets)

По-умолчанию панель с ними спрятана. Открыть ее можно здесь.

Window -> Show View -> Other... -> General -> Snippets.

На скриншоте показан вид стандартной панели.

snippets panel

Принцип работы сниппетов очень похож на шаблоны. Разница в том, что для вставки сниппета вам не нужно запоминать его название. Достаточно просто сделать двойной клик по нему.

Также можно группировать сниппеты в зависимости от области использования.

На мой взгляд, сниппеты хорошо подходят для вставки небольших блоков кода.

Чтобы создать свой сниппет, нужно сделать правый клик на их панеле и в контекстном меню выбрать пункт Customize....

«Горячие» клавиши.

Посмотреть полный список можно здесь. Window -> Preferences... -> General -> Keys.

Я приведу только те, которыми пользуюсь чаще всего.

Alt+стрелка (вверх/вниз) – перемещает текущую строку вверх/вниз.

Ctrl+Alt+ стрелка вниз – копирует текущую строку. Так сказано в документации. У меня – переворачивает экран :-).

Alt+Shift+Q – через секунду после нажатия появляется окошко с подсказками (функция интересная, но пользуюсь редко).

Ctrl+Space – автозавершение кода.

Ctrl+Z – отмена.

Ctrl+D – удаляет текущую строку.
Ctrl+Delete – удаляет символы начиная с позиции курсора и до конца слова.
Ctrl+Backspace – удаляет символы начиная с позиции курсора и до начала слова.

Ctrl+F – открывает диалог поиска/замены.
Ctrl+K – искать дальше.

Ctrl+J – инкрементный поиск. Когда режим активирован в строке состояния (внизу редактора) появляется фраза Incremental Find. После этого можно вводить текст. Найденная фраза будет автоматически подсвечиваться. Повторное нажатие Ctrl+J (при выделенном тексте) работает как «искать дальше».

Alt+Shift+G – быстрый поиск по функциям, константам и классам PHP.

Ctrl+Shift+X,Y – преобразует строчные буквы в прописные и наоборот

Alt+/ — завершение слов. В отличие от Ctrl+Space нечувствительно к контексту.

В заключение хочу дать небольшой совет. Не пытайтесь создавать шаблоны на все случаи жизни или специально запоминать все комбинации клавиш. Ориентируйтесь на то, как часто вы их используете.

Если заметили, что несколько раз пишите один и тот же код – делайте шаблон или сниппет. Постоянно заходите в одно и тоже меню – запоминайте сочетание клавиш.

В общем, Eclipse предоставляет очень много полезных инструментов. И далеко не все описаны в этой заметке. Мне будет очень интересно почитать о том, какими инструментами вы пользуетесь и почему. Комментарии открыты!

  • Честно говоря, нафиг Экслипс не нужен. Мой друг кодит только в нем, хотел подсадить меня на эклипс ) Но я не дался, мне почему-то не нужно столько всего. Мне нужен только текстовый редактор с подсветкой синтаксиса и ВСЁ.

    • Я тоже часто пользуюсь обычными редакторами (перепробовал, наверное уже десяток), но только для мелких работ.
      Если проект большой (не на 2-3 часа), то как ни крути eclipse время экономит.

  • Честно говоря, нафиг Экслипс не нужен. Мой друг кодит только в нем, хотел подсадить меня на эклипс ) Но я не дался, мне почему-то не нужно столько всего. Мне нужен только текстовый редактор с подсветкой синтаксиса и ВСЁ.

    • Я тоже часто пользуюсь обычными редакторами (перепробовал, наверное уже десяток), но только для мелких работ.
      Если проект большой (не на 2-3 часа), то как ни крути eclipse время экономит.

  • enum

    Подскажите, как в голом эклипсе добавить готовый проект? Чтобы было как у ZS 6 — Remote Systems->Add to project.

    • Я не работал с ZendStudio.
      А добавить проект можно. File — Import… — General — Existing projects into workspace.

  • enum

    Подскажите, как в голом эклипсе добавить готовый проект? Чтобы было как у ZS 6 — Remote Systems->Add to project.

    • Я не работал с ZendStudio.
      А добавить проект можно. File — Import… — General — Existing projects into workspace.

  • enum

    В этом случае добавляет только проекты, созданные Эклипсом. Я под проектом понимаю не Эклипсовский, а в принципе набор папок-библиотек своих:)
    Пробовал добавить через File — Import… — General — Flle System. Вроде гуд, только по функциям не прыгает:( The resource is not on the build path of a Php project. При этом Build Project и Build All из меню недоступны.

    • Попробуйте создать пустой проект и добавить в него файлы.
      Вообще импорт из других IDE какой-то недоделанный.

  • enum

    В этом случае добавляет только проекты, созданные Эклипсом. Я под проектом понимаю не Эклипсовский, а в принципе набор папок-библиотек своих:)
    Пробовал добавить через File — Import… — General — Flle System. Вроде гуд, только по функциям не прыгает:( The resource is not on the build path of a Php project. При этом Build Project и Build All из меню недоступны.

    • Попробуйте создать пустой проект и добавить в него файлы.
      Вообще импорт из других IDE какой-то недоделанный.

  • Спасибо,за статью не использовал его до сегодняшнего дня, теперь будем использовать

  • Спасибо,за статью не использовал его до сегодняшнего дня, теперь будем использовать

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

    И еще, вопрос, Владимир вы каким пользуетесь плагином для PHP? Я phpeclipse, до этого использовал PDT, но не особо понравилось.

    Для html + css и т.д. используете Atana plugin?

    P.S. странно, почему-то google reader мой от вас отписался сам… сейчас опять вас добавил, а то думал у вас ничего нового в блоге не происходит или в отпуске 🙂

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

    И еще, вопрос, Владимир вы каким пользуетесь плагином для PHP? Я phpeclipse, до этого использовал PDT, но не особо понравилось.

    Для html + css и т.д. используете Atana plugin?

    P.S. странно, почему-то google reader мой от вас отписался сам… сейчас опять вас добавил, а то думал у вас ничего нового в блоге не происходит или в отпуске 🙂

  • И еще, только заметил что про Eclipse мног заметок у вас, но почему то раздела в блоге для него не нашел 🙁

  • И еще, только заметил что про Eclipse мног заметок у вас, но почему то раздела в блоге для него не нашел 🙁

  • >> вы каким пользуетесь плагином для PHP

    Я установил сборку EasyEclipse, по-моему очень неплохая.

    >> используете Atana plugin?

    Слышал очень много хороших отзывов, но руки не доходят попробовать. Редактор eclipse вполне устраивает.

    >> google reader мой от вас отписался сам

    если разберетесь почему, пожалуйста, напишите. Очень интересная тема, последнее время счетчик feedburner'а сильно «прыгал».

    >> много заметок об Eclipse

    согласен, раздел нужно добавить. Когда писал первую, не думал, что буду продолжать эту тему.

  • >> вы каким пользуетесь плагином для PHP

    Я установил сборку EasyEclipse, по-моему очень неплохая.

    >> используете Atana plugin?

    Слышал очень много хороших отзывов, но руки не доходят попробовать. Редактор eclipse вполне устраивает.

    >> google reader мой от вас отписался сам

    если разберетесь почему, пожалуйста, напишите. Очень интересная тема, последнее время счетчик feedburner'а сильно «прыгал».

    >> много заметок об Eclipse

    согласен, раздел нужно добавить. Когда писал первую, не думал, что буду продолжать эту тему.

  • sergey

    спасибо ) очень интересная статья. пару хоткеев из вашего списка очень пригодятся. eclipse + pdt + aptana рулят )

  • sergey

    спасибо ) очень интересная статья. пару хоткеев из вашего списка очень пригодятся. eclipse + pdt + aptana рулят )

  • В EasyEclipse юзается phpeclipse 🙂

  • В EasyEclipse юзается phpeclipse 🙂

  • Кстати — очень удобная вещь, уже пол года юзаю и доволен

  • Кстати — очень удобная вещь, уже пол года юзаю и доволен

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

    Очепятка в посте:
    Прежде всего, о самой DIE. <<< IDE
    Клипс живее всех живых )

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

    Очепятка в посте:
    Прежде всего, о самой DIE. <<< IDE
    Клипс живее всех живых )

  • Дорин

    Здравствуйте есть вопрос:
    Шаблоны.

    Принцип такой – пишите фрагмент кода и присваиваете ему имя,

    а как эта имя присвоить?

    • меню Window — Preferences… —
      в левой части окна выбираем PHP — Templates.
      Скриншот окна с шаблонами можно посмотреть здесь
      Только на нем выделена кнопка Import, а вам нужна New

  • Дорин

    Здравствуйте есть вопрос:
    Шаблоны.

    Принцип такой – пишите фрагмент кода и присваиваете ему имя,

    а как эта имя присвоить?

    • меню Window — Preferences… —
      в левой части окна выбираем PHP — Templates.
      Скриншот окна с шаблонами можно посмотреть здесь
      Только на нем выделена кнопка Import, а вам нужна New

  • andrey

    Подскажите, Владимир, как сделать чтобы при работе в PDT было автодополнение кода без нажатия ctrl+space?

    • Я использую EasyEclipse, в него входит плагин PHP Eclipse, а не PDT, поэтому точно ответить не могу.
      Но все эти настройки находятся в Window — Preferences…

      Для EasyEclipse: Window — Preferences… — PHP — Editor — Code Assist. Параметр, который устанавливает время задержки перед появлением списка автодополнения называется «Auto activation delay».
      По-идее в PDT должны быть аналогичные настройки.

  • andrey

    Подскажите, Владимир, как сделать чтобы при работе в PDT было автодополнение кода без нажатия ctrl+space?

    • Я использую EasyEclipse, в него входит плагин PHP Eclipse, а не PDT, поэтому точно ответить не могу.
      Но все эти настройки находятся в Window — Preferences…

      Для EasyEclipse: Window — Preferences… — PHP — Editor — Code Assist. Параметр, который устанавливает время задержки перед появлением списка автодополнения называется «Auto activation delay».
      По-идее в PDT должны быть аналогичные настройки.

  • Владимир, у меня уже стоит эклипс и я им пользуюсь, а если я хочу писать на php мне надо скачивать EasyEclipse?

    • Нет это не обязательно. Eclipse — это платформа из которой можно сделать что угодно с помощью плагинов.
      Поэтому вы просто можете посмотреть список плагинов, которые использует EasyEclipse и установить их себе.
      Но, возможно, быстрее будет установить EasyEclipse или PDT, т.к. плагинов довольно много. В общем-то именно из-за большого количества плагинов и появляются дистрибутивы вроде EasyEclipse.

      • а я скачала вот это — adodb, это не то?

        • Нет, adodb — это библиотека для работы с базами данных. К eclipse отношения не имеет.

        • на сайте eclipse 3 варианта, которые можно скачать и не понятно, который именно мне нужен!

        • В начале этой страницы три ссылки на дистрибутивы для Windows, MacOS и Linux.
          Качаете дистрибутив для вашей операционки.

  • Владимир, у меня уже стоит эклипс и я им пользуюсь, а если я хочу писать на php мне надо скачивать EasyEclipse?

    • Нет это не обязательно. Eclipse — это платформа из которой можно сделать что угодно с помощью плагинов.
      Поэтому вы просто можете посмотреть список плагинов, которые использует EasyEclipse и установить их себе.
      Но, возможно, быстрее будет установить EasyEclipse или PDT, т.к. плагинов довольно много. В общем-то именно из-за большого количества плагинов и появляются дистрибутивы вроде EasyEclipse.

      • а я скачала вот это — adodb, это не то?

        • Нет, adodb — это библиотека для работы с базами данных. К eclipse отношения не имеет.

        • на сайте eclipse 3 варианта, которые можно скачать и не понятно, который именно мне нужен!

        • В начале этой страницы три ссылки на дистрибутивы для Windows, MacOS и Linux.
          Качаете дистрибутив для вашей операционки.

  • Эдуард

    поставил я phpeclipse….что вам сказать… слабое подобие Aptana-PHP.

    • Вам ничто не мешает поставить Aptana в виде плагина к phpeclipse 🙂

  • Эдуард

    поставил я phpeclipse….что вам сказать… слабое подобие Aptana-PHP.

    • Вам ничто не мешает поставить Aptana в виде плагина к phpeclipse 🙂

  • Qq

    emacs не пробывали?
    под винду есть конфигурация у одного чела
    http://xahlee.org/emacs/xah_emacs_init.html

    но я юзаю обычный и под убунту
    там autocomplete mode оуенный и yasnnippet сниппеты есть для всех языков и для php.
    есть cake mode для комплита cake framework
    как подучу лисп напишу для yii

    • Нет emacs не пробовал, было несколько попыток изучить vim, но все
      неудачные. Терпения не хватало 🙂

      Если сделаете автокомплит для yii, дайте знать, я часто пишу об этом
      фреймворке и порекламирую ваше расширение.

  • VZ

    Если у вас нет пункта Snippets, то вам нужно поставить в Eclipse специальный плагин. Подробнее: http://stackoverflow.com/questions/14622432/where-to-find-the-snippets-in-eclipse-juno-kepler-classic

  • Anobi

    Напишите пожалуйста по-русски как добавить в эклипс языки программирования и соответствующие файлы к ним. Я новичок.

    • Просьба слишком общая. Какие языки нужно добавить?
      В любом случае рекомендую проверить наличие готовой сборки eclipse для нужного языка.

      • Anobi

        Оказалось все просто: есть кнопка Install new software. Там надо выбрать домен и что будете устанавливать.