Все hotkeys справедливы для Windows и думаю Linux версии, «Макосники» могут найти комбинации клавиш в соответствующем разделе настроек IDE
Итак, поехали:
- Search Everywhere. Двойное нажатие клавиши Shift вызывает popup окно для поиска чего угодно и где угодно. Достаточно написать фрагмент искомого текста, и наша пчелка трудяга найдет вхождения, причем сгруппирует их в категории. Фрагменты, найденные в классах, файлах, символах и даже элементах меню. Быстро и удобно, не правда ли?
Search Everywhere в действии
- Поиск в окне. Находясь в окне со списком файлов проекта (Project), мы просто начинаем писать имя файла или папки, которое хотим найти. Найденные файлы и папки весьма недвусмысленно выделяются в списке. Клавишами вверх и вниз осуществляется навигация по результатам поиска.
Поиск в окне в действии
- Выход из настроек IDE клавишей Esc. Находясь в настройках, мы можем быстро закрыть окно нажав клавишу Esc, то есть нам не обязательно трогать мышь, пусть себе отдыхает.
- Навигация по инспекции кода. Справа от нашего кода, мы видим результат фоновой инспекции кода. IDE подсказывает нам об ошибках и неточностях в файле. Осуществлять навигацию между этими ошибками и замечаниями можно клавишей F2
Навигация по инспекции кода в действии
- Последние открытые файлы. Ctrl+E открывает popup окно с файлами, которые мы недавно открывали. Так же в этом окне можно начать писать имя интересующего нас файла, и IDE отфильтрует список.
Последние открытые файлы в действии
- Быстрая генерация phpDoc комментария. Набираем /** нажимаем Enter и конструкция комментария завершится автоматически. Если в методе или функции определены параметры и указаны типы, то IDE учтет эту информацию при генерации. А если имеется ключевое слово return, то даже попробует угадать тип возвращаемого значения
Быстрая генерация phpDoc комментария в действии
- Генератор кода. Жмем в файле Alt+Insert. В появившемся popup окне IDE предлагает нам переопределить метод, реализовать метод, добавить конструктор, геттеры и сеттеры, а так же phpDoc коментарии
Генератор кода в действии
- Refactor This. Ctrl+Shift+Alt+T В открывшемся окне, нам предоставляется богатый выбор по рефакторингу кода. Перед применением изменений, можно выбрать предварительный просмотр, чтобы оценить какие файлы будут изменены
Refactor This в действии
- Postfix Completion. Удобный инструмент, который появился в 9 версии IDE. Позволяет быстро писать конструкции типа if, if not и т.д.
Перед вставкой авто дополнения набираем точку и IDE откроет popup окно с выбором для завершения вставки.
Postfix Completion в действии
- Productivity Guide. Данный раздел покажет вашу статистику использования различных “Фич”.Все данные представлены в виде таблицы с колонками: Feature – название, Group – категория, Used – какое количество времени вы ей пользовались, Last used – когда последний раз использовали. Табличку со статистикой можно отсортировать по каждой колонке. Этот раздел так же примечателен описанием различных возможностей, в котором указаны горячие клавиши для вызова.
Productivity Guide в действии
Комментарии (52)
yTko
21.07.2015 23:30+6ну а если по делу, то все это уже либо было, либо настолько старо (ну кроме постфикса, о котором, в общем-то, рассказывали в анонсе 9 версии), что хотелось бы узнать что-то новое и действительно полезное.
habrahabr.ru/post/157409
habrahabr.ru/post/212077
habrahabr.ru/post/212153
GHostly_FOX
21.07.2015 23:48+4Так в 9-ке появился еще одна полезная фитча — редактируя имя тэга HTML в начале, автоматом он же редактируется и в конце…
Например:
<h3>текст</h3> Изменив <h3> на <h2> PhpStorm сам заменит </h3> на </h2>
Set0r
28.07.2015 16:21Иногда эта фича начинает вести себя непредсказуемым образом, если рефакторишь объёмный кусок html, во время удаления лишних тегов, в момент невалидной структуры, она может «втихоря» переименовать родительский div к примеру в a. Легко упустить это из виду и отправить на продакшен. В остальном штука очень удобная.
WaveCut
28.07.2015 16:43Да, это не очень удобно.
Чтобы без проблем удалять обрамляющие тэги можно воспользоваться хоткеемC**+Shift+Del
— он умеет вырезать врапперы, оставляя содержимое. В меню:Code -> Unwrap / Remove
.
Обратное действие:Code -> Surround with (C**+Alt+T)
nitso
22.07.2015 00:16Поиск в окне работает не только для дерева файлов, но и вообще в практически всех панелях. Classmap, VCS, Code Coverage и т.д.
Отдельно хочется упомянуть поиск по действиям (ctrl + shift + a) — если забыл как сделать CamelCase для выделенного текста или любое другое действие.
MTonly
22.07.2015 00:28Возможно ли задать, переформатировать ли код при вставке из буфера обмена, индивидуально для каждого языка? Например, форматирование SCSS- или LESS-кода весьма полезно, а вот портить при вырезании/вставке аккуратно расставленные ранее выравнивающие пробелы (например, в списке объявлений переменных или при присваивании длинной строки с многострочной конкатенацией), например, в JS, превращая их в символ табуляции, нежелательно.
darkgool
22.07.2015 09:00Отключить автовыравнивание по вставке и форматировать выделенный текст по ctrl+alt+L
MTonly
22.07.2015 15:41Спасибо. Слишком хлопотно (сродни использованию впечатляющего сочетания клавиш Ctrl+Shift+Alt+V для вставки текста без изменений). Хотелось бы раздельного управления переформатированием при обычной (Ctrl+V) вставке кода на разных языках.
Phizio
22.07.2015 00:36всегда было интересно, как открыть окно выбора файла, чтобы путь к нему тут же подставился в позицию курсора. К примеру, когда пишешь атрибут src="… Автодополнение вещь хорошая, но если путь глубокий — то не так удобно. Хотелось бы узнать, есть ли такая возможность, именно во всплывающем окне с горячей клавишей вызова, а не в автодополнении. Ну и ещё о том, как настроить базовый путь при такой генерации, чтобы он от корневой папки сайта отсчитывался, а не от С:/ ;)
darkgool
22.07.2015 09:02+1Нужно docroot папку жмякнуть правой кнопкой и выбрать Mark directory as > Resource root
vshemarov
22.07.2015 00:37+1Дополнение к п.6: если в теле метода/функции над строкой, где происходит присвоение переменной, набрать /** и пробел, то получим комментарий phpDoc такого вида:
/** @var $variable */
Удобно задавать тип переменной (особенно класс), когда IDE не может этого определить по выражению.
affka
22.07.2015 06:00+10Выход из настроек IDE клавишей Esc
Вы серьезно считаете это «фичей»? Мне кажется это уже стандарт, в том числе на вебсайтах.
Я вам больше скажу — любое окно PhpStorm'a можно закрыть клавишей Esc.
А вообще, как уже говорили, слабоват мануал. Надеюсь в следующей части будет рассказано действительно редкие и полезные фичи.
Все hotkeys справедливы для Windows и думаю Linux версии
Раз уж беретесь статью писать, то уже не поленитесь и найдите хоткеи для всех. Иначе какой смысл статьи?
Sayonji
22.07.2015 06:02+1Когда начинал пользоваться сабжем, не сразу нашел очень полезное сочетание: Ctrl+F12 — аналог сублимовского Ctrl+R, т. е. поиск по определениям символов в текущем файле. Зачастую удобнее, чем Shift+Shift (поиск в проекте). И туда же подсказка: там нельзя, как в сублиме, пропускать буквы при поиске, но можно, если при пропусках ставить пробелы.
(Я был бы благодарен, если бы какой-нибудь хороший человек сделал плагин, который при вводе букв в окошках Shift+Shift и Ctrl+F12 после каждой автоматом ставил пробел. Сам я не умею.)
Quber
22.07.2015 08:58Из удобных комбинаций могу отметить:
1. Cntrl + N поиск по имени класса
2. Cntrl + Shift + N поиск по имени файла
Удобно когда знаешь имя класса или файла и не хочется копаться в проекте.
JeStoneDev
22.07.2015 10:09Статья очень походит на перевод вот этого видео www.youtube.com/watch?v=J9emzl_VmIs
Если это так, то стоило бы указать ссылку на оригинал.
alkresin
22.07.2015 10:19+1Думаю времена, когда хотелось выделиться программированием в Notepad++, практически ушли.
Думаю, большинство из тех, кто пользуется Notepad++ или другими текстовыми редакторами, делают это не для того, чтобы «выделиться», а потому что им это удобно.
mihmig
22.07.2015 10:30Скажите, а можно ли отлаживать консольные PHP-скрипты простым нажатием F5 (как это сделано в Komodo IDE) не переключаясь в браузер?
dvapelnik
28.07.2015 15:37+1дебаг точно есть при запуске тестов в режиме дебага (Shift+F9) и при этом можно установить брейк-поинт и начинать дебажить там, где нужно
СкринWaveCut
28.07.2015 16:50+1Я положил в
~/bin/phpx
вот такое:
XDEBUG_CONFIG=idekey=PHPSTORM /usr/bin/php $*
Расширение настроено вот так
xdebug.remote_autostart=off xdebug.remote_enable=On xdebug.remote_host="MY.IP.ADD.RESS" xdebug.remote_port=9000 xdebug.remote_handler="dbgp" xdebug.remote_mode=req xdebug.idekey="PHPSTORM"
nitso
30.07.2015 18:41Проще всего дебажить консольные скрипты (на локальной машине с xdebug) можно так:
- включаем пассивный debug-режим (Run — Start Listening For PHP Debug Connections или соответствующей кнопкой на панели)
- Запускаем скрипт с аргументами:
php -d xdebug.remote_enable=1 -d xdebug.remote_autostart=1 my_script.php
xdebug.remote_enable=1
можно спокойно положить в php.ini, а remote_autostart я бы не советовал — пыха будет всегда ломиться в порт, даже когда не надо.
Более «правильный» способ с указанием IDE Key приведен выше.
А чтобы отлаживать по одной кнопке, достаточно создать debug-конфигурацию и запускать её, например, во встроенном терминале. Вообще без смены контекста будет.dvapelnik
30.07.2015 21:55мое мнение, что гораздо удобнее запускать и дебажить консольные скрипты именно через конфигурационный профиль в IDE как я описывал выше
annenkov
22.07.2015 10:48+1Это все хоть и полезные, но довольно очевидные вещи, лучше бы собрать список менее очевидных полезных вещей, которые надо еще поискать, например
1) Если выделить строку в окне редактора (можно кликом по левом полю) и нажать Ctrl+Alt+Shift+C или выбрать в контекстном меню Copy Reference — в буфер скопируется ссылка на текущую строку текущего файла типа Path/Class.php:123 — очень удобно для общения с другими разработчиками например, переход по этой ссылке осуществляется через Ctrl+Shift+N.
2) Если подключен к проекту Git в контекстном меню при клике на левом поле окна редактора есть клевая вещь Annotate — можно смотреть кто и когда менял последний раз каждую строчку в файле.
и т.д.
Voenniy
22.07.2015 11:00А как выделенный текст обрамить в кавычки, или обернуть скобками? Помню включал эту функцию, но сейчас что-то найти не могу.
JeStoneDev
22.07.2015 11:20+3Ctrl+Alt+T / Cmd+Alt+T — для выделения скобками
Settings/Smart Keys/Surround selection on typing quote or brace — для выделения кавычками (при нажатии на кавычку выделенный текст будет в них обернут)Assada
22.07.2015 11:50О Боже. Я все это время страдал и унижался. Ленился погуглить. Спасибо большое!
kovalevsky
22.07.2015 11:04+1Из неописанного, чем пользуюсь:
Ctrl+Shift+A — Поиск по действиям меню (из File, Edit, View и т.д.)
Ctrl+Q — Открывает документацию по методу/функцией, на которой установлен курсор
Ctrl+Alt+T — Surround With диалог и там же Live TemplatesWaveCut
22.07.2015 12:56+1Ctrl+Click переходит к определению, иногда это не очень удобно, если в тайп-хинтах используются интерфейсы — вы пройдете в интерфейс. Чтобы увидеть его реализации — поставьте курсор на тип, нажмите Ctrl+Alt+B — если реализаций больше одной — вам покажет список, ну или сразу кинет к реализации.
Stamm
22.07.2015 14:48+1Есть ещё плагин «Key promoter». Смысл его в том, что если нажать мышкой какую-нибудь кнопку, у которой есть хоткей, то на время появится плашка с хоткеем
СкриншотTyVik
30.07.2015 09:19И он-таки достанет и заставит повесить горячие клавиши на всё, чем хотя бы 3 раза воспользовался.
booomerang
22.07.2015 18:10Только про последние 2 узнал, всё остальное банальщина =).
из фич пользуюсь также CTRL + w — быстро выделяем слово, строку или еще что.
Holden
23.07.2015 18:07Умеет ли phpStorm удалять лишние пробелы при сохранении? И автоматом заменять пробелы на табуляцию для отступов?
Спасибо.JeStoneDev
23.07.2015 19:30Пробелы на табуляцию — Edit/Convert Indent/To tabs
По поводу лишних пробелов, не очень понятно, что вы имеете ввиду. PhpStorm поддерживает автоформатирование Code/Reformate Code, он в том числе приводит в порядок пробелы
Чтобы настроить все это на сохранение, можно в Settings/Keymaps для Save All назначить комбинацию Ctrl+Alt+S, записать макрос Edit/Macros: Ctrl+A, Code/Reformate Code, Edit/Convert Indent/To tabs, Arrow Up, Arrow Down, Ctrl+Alt+S
и назначить этот макрос в Settings/Keymaps на комбинацию Ctrl+S
nobilix
28.07.2015 10:32+1Советую посмотреть эту серию Laracasts
laracasts.com/series/how-to-be-awesome-in-phpstorm
тут очень наглядно и полезно все
Munk
28.07.2015 13:04Очень не хватало выделения столбцами после sublime (ctrl+shift+L).
Оказывается в PhpStorm еще проще: alt + выделение мышойnitso
30.07.2015 18:43Можно еще третьей кнопкой мыши (нажатым колесом) тащить курсор. Вообще, все это легко настраивается. А найти нужное действие (и подсмотреть клавиатурное сокращение) можно по ctrl+shift+a (вроде бы во всех стандартных раскладках).
nitso
30.07.2015 18:45Для тех, кто все время забывает сочетания клавиш, есть встроенная распечатывабельная подсказка: Help->Default Keymap Reference
Temirkhan
Раз такое дело, может кто-то знает, как добавить выделенному тексту табуляцию?
Не знаю, как вопрос правильно поисковику скормить, никак не найду — знаю только, что урезается табуляция при помощи shift+tab
yTko
просто tab?
Temirkhan
Крылов дал бы мне затрещину. Спасибо большое
justabaka
В PyCharm и куче других редакторов это обычно Tab.
sectronix
Так же можно сразу убрать у выделенного текста табуляцию: Shift + Tab.