Как стать автором
Обновить

Комментарии 52

НЛО прилетело и опубликовало эту надпись здесь
просто tab?
НЛО прилетело и опубликовало эту надпись здесь
В PyCharm и куче других редакторов это обычно Tab.
ну а если по делу, то все это уже либо было, либо настолько старо (ну кроме постфикса, о котором, в общем-то, рассказывали в анонсе 9 версии), что хотелось бы узнать что-то новое и действительно полезное.

habrahabr.ru/post/157409
habrahabr.ru/post/212077
habrahabr.ru/post/212153
Так в 9-ке появился еще одна полезная фитча — редактируя имя тэга HTML в начале, автоматом он же редактируется и в конце…

Например:

<h3>текст</h3> Изменив <h3> на <h2> PhpStorm сам заменит </h3> на </h2>
Иногда эта фича начинает вести себя непредсказуемым образом, если рефакторишь объёмный кусок html, во время удаления лишних тегов, в момент невалидной структуры, она может «втихоря» переименовать родительский div к примеру в a. Легко упустить это из виду и отправить на продакшен. В остальном штука очень удобная.
Да, это не очень удобно.

Чтобы без проблем удалять обрамляющие тэги можно воспользоваться хоткеем C**+Shift+Del — он умеет вырезать врапперы, оставляя содержимое. В меню: Code -> Unwrap / Remove.

Обратное действие: Code -> Surround with (C**+Alt+T)
Поиск в окне работает не только для дерева файлов, но и вообще в практически всех панелях. Classmap, VCS, Code Coverage и т.д.
Отдельно хочется упомянуть поиск по действиям (ctrl + shift + a) — если забыл как сделать CamelCase для выделенного текста или любое другое действие.
Возможно ли задать, переформатировать ли код при вставке из буфера обмена, индивидуально для каждого языка? Например, форматирование SCSS- или LESS-кода весьма полезно, а вот портить при вырезании/вставке аккуратно расставленные ранее выравнивающие пробелы (например, в списке объявлений переменных или при присваивании длинной строки с многострочной конкатенацией), например, в JS, превращая их в символ табуляции, нежелательно.
Отключить автовыравнивание по вставке и форматировать выделенный текст по ctrl+alt+L
Спасибо. Слишком хлопотно (сродни использованию впечатляющего сочетания клавиш Ctrl+Shift+Alt+V для вставки текста без изменений). Хотелось бы раздельного управления переформатированием при обычной (Ctrl+V) вставке кода на разных языках.
всегда было интересно, как открыть окно выбора файла, чтобы путь к нему тут же подставился в позицию курсора. К примеру, когда пишешь атрибут src="… Автодополнение вещь хорошая, но если путь глубокий — то не так удобно. Хотелось бы узнать, есть ли такая возможность, именно во всплывающем окне с горячей клавишей вызова, а не в автодополнении. Ну и ещё о том, как настроить базовый путь при такой генерации, чтобы он от корневой папки сайта отсчитывался, а не от С:/ ;)
Нужно docroot папку жмякнуть правой кнопкой и выбрать Mark directory as > Resource root
Дополнение к п.6: если в теле метода/функции над строкой, где происходит присвоение переменной, набрать /** и пробел, то получим комментарий phpDoc такого вида:
/** @var  $variable */

Удобно задавать тип переменной (особенно класс), когда IDE не может этого определить по выражению.
Это не phpdoc, это vardoc.
Выход из настроек IDE клавишей Esc
Вы серьезно считаете это «фичей»? Мне кажется это уже стандарт, в том числе на вебсайтах.
Я вам больше скажу — любое окно PhpStorm'a можно закрыть клавишей Esc.

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

Все hotkeys справедливы для Windows и думаю Linux версии
Раз уж беретесь статью писать, то уже не поленитесь и найдите хоткеи для всех. Иначе какой смысл статьи?
Ctrl+Q (Документация) по Esc не закрывается, а вот по Alt+F4 закрывается.
отключите Pinned Mode и будет закрываться по Esc
Когда начинал пользоваться сабжем, не сразу нашел очень полезное сочетание: Ctrl+F12 — аналог сублимовского Ctrl+R, т. е. поиск по определениям символов в текущем файле. Зачастую удобнее, чем Shift+Shift (поиск в проекте). И туда же подсказка: там нельзя, как в сублиме, пропускать буквы при поиске, но можно, если при пропусках ставить пробелы.
(Я был бы благодарен, если бы какой-нибудь хороший человек сделал плагин, который при вводе букв в окошках Shift+Shift и Ctrl+F12 после каждой автоматом ставил пробел. Сам я не умею.)
Из удобных комбинаций могу отметить:

1. Cntrl + N поиск по имени класса
2. Cntrl + Shift + N поиск по имени файла

Удобно когда знаешь имя класса или файла и не хочется копаться в проекте.
Думаю времена, когда хотелось выделиться программированием в Notepad++, практически ушли.

Думаю, большинство из тех, кто пользуется Notepad++ или другими текстовыми редакторами, делают это не для того, чтобы «выделиться», а потому что им это удобно.
Скажите, а можно ли отлаживать консольные PHP-скрипты простым нажатием F5 (как это сделано в Komodo IDE) не переключаясь в браузер?
Отлаживать можно, но горячей клавиши по умолчанию для этого вроде бы нет.
дебаг точно есть при запуске тестов в режиме дебага (Shift+F9) и при этом можно установить брейк-поинт и начинать дебажить там, где нужно

Скрин

кстати, запускается все это дело в таком виде

/usr/bin/php -dxdebug.remote_enable=1 -dxdebug.remote_mode=req -dxdebug.remote_port=9000 -dxdebug.remote_host=127.0.0.1 [another arguments for start phpunit]

как запускать с консоли чтобы PhpStorm ловил соединение от xdebug-а я не разобрался, но PhpStorm довольно просто позволяет запускать и дебажить консольные скрипты. проще всего — кликнуть ПКМ и найти в контекстном меню «Run» или «Debug». по идее должно быть два варианта у кажлого — запуск через браузер и запуск через CLI. выбираете второй вариант. автоматически создастся профиль для запуска и дебага этого скрипта. дальше ставите брейкпоинт и запускаете дебаг (Shift+F9)

Изображения


Я положил в ~/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"


image

image
Проще всего дебажить консольные скрипты (на локальной машине с 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-конфигурацию и запускать её, например, во встроенном терминале. Вообще без смены контекста будет.
мое мнение, что гораздо удобнее запускать и дебажить консольные скрипты именно через конфигурационный профиль в IDE как я описывал выше
Пункт 6 работает не только для php, но и js.
Это все хоть и полезные, но довольно очевидные вещи, лучше бы собрать список менее очевидных полезных вещей, которые надо еще поискать, например
1) Если выделить строку в окне редактора (можно кликом по левом полю) и нажать Ctrl+Alt+Shift+C или выбрать в контекстном меню Copy Reference — в буфер скопируется ссылка на текущую строку текущего файла типа Path/Class.php:123 — очень удобно для общения с другими разработчиками например, переход по этой ссылке осуществляется через Ctrl+Shift+N.
2) Если подключен к проекту Git в контекстном меню при клике на левом поле окна редактора есть клевая вещь Annotate — можно смотреть кто и когда менял последний раз каждую строчку в файле.

и т.д.
А как выделенный текст обрамить в кавычки, или обернуть скобками? Помню включал эту функцию, но сейчас что-то найти не могу.
Ctrl+Alt+T / Cmd+Alt+T — для выделения скобками

Settings/Smart Keys/Surround selection on typing quote or brace — для выделения кавычками (при нажатии на кавычку выделенный текст будет в них обернут)
Да, то что надо, спасибо!
О Боже. Я все это время страдал и унижался. Ленился погуглить. Спасибо большое!
Из неописанного, чем пользуюсь:
Ctrl+Shift+A — Поиск по действиям меню (из File, Edit, View и т.д.)
Ctrl+Q — Открывает документацию по методу/функцией, на которой установлен курсор
Ctrl+Alt+T — Surround With диалог и там же Live Templates
Ctrl+Click переходит к определению, иногда это не очень удобно, если в тайп-хинтах используются интерфейсы — вы пройдете в интерфейс. Чтобы увидеть его реализации — поставьте курсор на тип, нажмите Ctrl+Alt+B — если реализаций больше одной — вам покажет список, ну или сразу кинет к реализации.
Есть ещё плагин «Key promoter». Смысл его в том, что если нажать мышкой какую-нибудь кнопку, у которой есть хоткей, то на время появится плашка с хоткеем
Скриншот
image
И он-таки достанет и заставит повесить горячие клавиши на всё, чем хотя бы 3 раза воспользовался.
Только про последние 2 узнал, всё остальное банальщина =).
из фич пользуюсь также CTRL + w — быстро выделяем слово, строку или еще что.
Умеет ли phpStorm удалять лишние пробелы при сохранении? И автоматом заменять пробелы на табуляцию для отступов?
Спасибо.
Пробелы на табуляцию — 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
Это просто в Settings всё можно настроить, без макросов
Советую посмотреть эту серию Laracasts
laracasts.com/series/how-to-be-awesome-in-phpstorm
тут очень наглядно и полезно все
Очень не хватало выделения столбцами после sublime (ctrl+shift+L).
Оказывается в PhpStorm еще проще: alt + выделение мышой
Осталось найти аналогию саблаймовской alt+shift+w
ctrl+alt+T?
Можно еще третьей кнопкой мыши (нажатым колесом) тащить курсор. Вообще, все это легко настраивается. А найти нужное действие (и подсмотреть клавиатурное сокращение) можно по ctrl+shift+a (вроде бы во всех стандартных раскладках).
Для тех, кто все время забывает сочетания клавиш, есть встроенная распечатывабельная подсказка: Help->Default Keymap Reference
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации