Полезные комбинации в IntelliJ IDEA

Всем нам хорошо известна среда разработки IntelliJ IDEA. В этой заметке я собрал список наиболее полезных клавиш в IDEA, которыми пользуюсь практически каждый день, и без которых работа выполнялась бы намного медленнее. При этом я постарался отсортировать каждый раздел от наиболее часто используемых к наименее.
Keymap: mac — Mac OS X 10.5+ win/linux — Default
⌘ — Command ⌃ — Control ⌥ — Option (Alt) ⇧ — Shift
0. Универсальная комбинация от всех проблем
| Mac OS | Win/Linux | Описание | Примечание |
|---|---|---|---|
| ⌥ + Enterl | Alt + Enter | показать быстрые действия, исправить код |
1. Навигация по коду
| Mac OS | Win/Linux | Описание | Примечание |
|---|---|---|---|
| ⌘ + O | Ctrl + N | открыть класс | |
| ⌘ + ⇧ + O | Ctrl + Shift + N | открыть файл | |
| ⌘ + ⌥ + Left/Right | Ctrl + Alt + Left/Right | назад/вперед по истории навигации | |
| ⌘ + B | Ctrl + B | перейти к декларации (переменной/метода), показать использование переменной/метода | |
| ⌘ + ⌥ + B | Ctrl + Alt + B | перейти к имплементации метода | |
| ⌘ + E | Ctrl + E | последние открытые файлы | |
| ⌘ + ⇧ + E | Ctrl + Shift + E | последние редактированные файлы | |
| ⌘ + F12 | Ctrl + F12 | список методов текущего класса | начать набирать имя метода для фильтрации |
2. Рефакторинг/редактирование/генерация кода
| Mac OS | Win/Linux | Описание | Примечание |
|---|---|---|---|
| ⌃ + ⌥ + O | Ctrl + Alt + O | оптимизировать раздел import | |
| ⌘ + ⌥ + L | Ctrl + Alt + L | автоматически отформатировать код | |
| ⌘ + N | Alt + Insert | сгенерировать код (конструктор, геттер, сеттер, equals, hashCode) | |
| ⇧ + F6 | Shift + F6 | переименовать (класс, метод, поле, переменную), включая все использования и референсы | |
| ⌘ + ⌥ + V | Ctrl + Alt + V | вынести выражение в переменную | |
| ⌃ + O | Ctrl + O | переопределить метод | |
| ⌃ + I | Ctrl + I | имплементировать метод | |
| ⌃ + G | Alt + J | выделить следующее появление текста (next occurence) | удобно подменять одну переменную другой при рефакторинге |
| ⌘ + | Ctrl + / | закомментировать однострочным комментарием | |
| ⌘ + ⇧ + / | Ctrl + Shift + / | закомментировать многострочным комментарием | |
| ⌘ + ⇧ + 8 | Shift + Alt + Insert | переключить режим редактирования (обычный/колонка) | удобно редактировать большие куски выровненного кода, файлов .properties |
| ⌥ + ⌥(зажать) + Up/Down | Ctrl + Ctrl(зажать) + Up/Down | выделить следующую/предыдущую строку в режиме колонки | нажать и отпустить и тут же зажать Option (mac) или Ctrl (win/linux). Удобнее чем, переключаться в режим редактирования колонкой для небольших кусков кода |
3. Прочее
| Mac OS | Win/Linux | Описание | Примечание |
|---|---|---|---|
| ⌃ + R/D | Shift + F10/F9 | запуск/дебаг текущей выбранной конфигурации | |
| ⌃ + ⇧ + R/D | Ctrl + Shift + F10/F9 | запуск/дебаг конфигурации из контекста | |
| ⌃ + ⌥ + R/D | Alt + Shift + F10/F9 | выбор конфигурации и запуск/дебаг | |
| ⌘ + ⇧ + F8 | Ctrl + Shift + F8 | открыть окно брейкпоинтов | |
| ⇧ + ⇧ | Shift + Shift | поиск везде | |
| ⌘ + ⇧ + A | Alt + ` | поиск действий | |
| ⌃ + V | Content Cell | быстрое меню системы контроля версий | |
| ⌘ + K | Ctrl + K | сделать коммит |
Комбинаций клавиш в IDEA очень много, все упомянуть/запомнить почти невозможно. В данном посте я описал только те комбинации, которые помню и которыми пользуюсь сам и без которых не могу представить работу в IDEA. В комментариях пишите самые полезные, на ваш взгляд, комбинации.
Intellij Idea – Рефакторинг кода
В этой главе мы узнаем о рефакторинге кода и о том, как он работает в IntelliJ. Рефакторинг кода – это реструктуризация кода без изменения его функциональности и удобства использования. Рефакторинг кода может быть сделан для улучшения читабельности кода, производительности или для удаления неиспользуемых / дублирующих функций. IntelliJ предоставляет отличную поддержку для рефакторинга кода. В этой главе обсуждаются различные действия по рефакторингу кода.
переименовывать
Действия переименования могут использоваться для переименования методов, их параметров, атрибутов класса, локальных переменных и так далее. Давайте создадим следующий класс в IntelliJ.
public class Employee private String name; private String address; private int age; public Employee() this("Jarvis", "Palo Alto", 35); > public Employee(String name, String address, int age) this.name = name; this.address = address; this.age = age; > public String getName() return name; > public void setName(String name) this.name = name; > public String getAddress() return address; > public void setAddress(String address) this.address = address; > public int getAge() return age; > public void setAge(int age) this.age = age; > @Override public String toString() return "Employee + "name='" + name + '\'' + ", address='" + address + '\'' + ", age pln"> + age + '>'; > public static void main(String args[]) Employee e = new Employee(); System.out.println(e); > >
Теперь давайте переименуем класс Employee в Person . Это действие внесет изменения в конструкторы, а метод main () –
- Выберите слово сотрудника
- Перейдите в Refactor → Rename и переименуйте его с помощью Person.
Выберите слово сотрудника
Перейдите в Refactor → Rename и переименуйте его с помощью Person.

Заменить дубликаты кода
Это одно из мощных действий по рефакторингу. IntelliJ идентифицирует дубликаты кода и заменяет его соответствующим кодом. Давайте введем дублирование кода и проведем его рефакторинг. Введите следующий код в редакторе –
public class Employee private String name; private String address; private int age; public Employee() this("Jarvis", "Palo Alto", 35); > public Employee(String name, String address, int age) this.name = name; this.address = address; this.age = age; > public void setData(String name, String address, int age) this.name = name; this.address = address; this.age = age; > public void showEmployeeDetail() System.out.println("Name pln"> + name + ", Address pln"> + address + ", Age pln"> + age); > public static void main(String args[]) Employee e = new Employee(); e.showEmployeeDetail(); > >
В этом примере конструктор Employee (String name, String address, int age) и открытый void setData (String name, String address, int age) полностью идентичны. После рефакторинга конструктор Employee (String name, String address, int age) изменяется следующим образом:
public Employee(String name, String address, int age) setData(name, address, age); >
Чтобы заменить дубликаты –
- Перейдите в Refactor → Найти и заменить дубликаты кода.
- Выберите область рефакторинга и следуйте инструкциям на экране для завершения действия.
Перейдите в Refactor → Найти и заменить дубликаты кода.
Выберите область рефакторинга и следуйте инструкциям на экране для завершения действия.

Копировать рефакторинг
В этом разделе мы поймем, как копировать один класс в другой. Давайте скопируем класс Employee в класс Person. Мы можем скопировать его в существующий или новый модуль. IntelliJ сделает необходимые изменения в зависимости от этого. Выполните следующие действия, чтобы выполнить рефакторинг копии.
- Перейдите в Refactor → Copy , откроется диалоговое окно.
- Введите новое имя и целевой пакет.
- Нажмите на кнопку ОК, и он сделает все необходимое.
Перейдите в Refactor → Copy , откроется диалоговое окно.
Введите новое имя и целевой пакет.
Нажмите на кнопку ОК, и он сделает все необходимое.

Переместить Рефакторинг
Рефакторинг Move аналогичен копии, но вместо создания другой копии он перемещает код в другой пакет или делает его внутренним классом другого класса.
Выполните следующие шаги, чтобы выполнить рефакторинг ходов –
- Перейти к, Refactor → Move.
- Появится новое окно.
- Выберите один из вариантов в соответствии с вашим выбором и нажмите Refactor.
Перейти к, Refactor → Move.
Появится новое окно.
Выберите один из вариантов в соответствии с вашим выбором и нажмите Refactor.

Безопасное удаление
Действие Безопасное удаление удалит объект только тогда, когда на него нет ссылок нигде в проекте. Целью этой опции может быть класс, интерфейс, метод, поле или параметр.
Давайте посмотрим на это в действии. Введите следующий код в редакторе –
public class HelloWorld static void sayHello() System.out.println("Hello, World . "); > public static void main(String[] args) sayHello(); > >
Выполните следующие действия для выполнения безопасного удаления –
- Выберите метод sayHello () .
- Щелкните правой кнопкой мыши по нему и выберите опцию Refactor → Safe Delete .
- Поскольку метод sayHello () используется, он покажет ошибку, как на следующем скриншоте –
Выберите метод sayHello () .
Щелкните правой кнопкой мыши по нему и выберите опцию Refactor → Safe Delete .
Поскольку метод sayHello () используется, он покажет ошибку, как на следующем скриншоте –

Изменить подпись
Действие изменяет подпись метода. Он может изменять имя метода, его параметры, типы, возвращаемые значения и так далее. Давайте возьмем метод из приведенного выше примера и изменим его сигнатуру.
Выполните следующие действия, чтобы выполнить действие Изменить подпись –
- Выберите метод.
- Щелкните правой кнопкой мыши по нему и выберите Refactor → Изменить подпись
- Появится новое окно, в котором вы можете выполнить вышеуказанные действия.
- В нижней части окна отображается предварительный просмотр новой подписи.
Щелкните правой кнопкой мыши по нему и выберите Refactor → Изменить подпись
Появится новое окно, в котором вы можете выполнить вышеуказанные действия.
В нижней части окна отображается предварительный просмотр новой подписи.

Тип Миграция
Тип Миграция меняет тип символа. Этот символ может быть параметром метода или атрибутом класса. Давайте рассмотрим следующий метод перед выполнением требуемого действия –
static void sayHello(String name) System.out.println(name); >
Выполните следующие шаги для выполнения миграции типов –
Выберите тип данных «String».
Щелкните правой кнопкой мыши по нему и выберите « Refactor» → «Тип миграции» .
Введите требуемый тип данных в данное текстовое поле.
Выберите область и нажмите на кнопку Refactor.
Топ-10 полезных сочетаний клавиш WebStorm

WebStorm позволяет сэкономить массу времени на часто повторяющихся действиях. Почти для всех таких действий существуют сочетания клавиш. Запомнить все эти сочетания невозможно, но в этом и нет необходимости. Предлагаем вам для начала освоить основные из них, и вы сразу увидите, насколько быстрее и эффективнее вы будете работать.
Все приведенные здесь сочетания клавиш — стандартные для macOS и Windows / Linux. Настроить удобные для вас сочетания клавиш можно в Preferences / Settings | Keymap.
Search Everywhere (поиск повсюду): ⇧⇧ / Shift+Shift
Если бы вы спросили нас, какое сочетание клавиш из этой статьи пригодится вам больше других, то мы бы назвали Search Everywhere. Как следует из его названия, оно позволяет искать любые файлы, действия, классы или символы по всему проекту. Все результаты поиска отображаются в одном месте.
Чтобы ограничить область поиска, перейдите на нужную вкладку или нажмите ⇥ / Tab. Кроме того, как показано на анимированном изображении ниже, прямо во всплывающем окне можно включить или отключить некоторые действия.
Show Context Actions (показать контекстные действия): ⌥↵ / Alt+Enter
WebStorm предлагает множество intention-действий, позволяющих быстро применять исправления, генерировать код и менять настройки проекта. Если код подчеркнут волнистой линией или в редакторе WebStorm появилась лампочка, можно щелкнуть по этой лампочке или переместить курсор на подчеркнутый код и нажать ⌥↵ / Alt+Enter — IDE покажет перечень доступных контекстных действий.
А как быть, если вы не хотите использовать какое-то действие или видеть предупреждения? Переместите курсор на код, нажмите ⌥↵ / Alt+Enter, а затем щелкните по стрелке рядом с инспекцией, которая вам не нужна, и отключите ее. Инспекция будет отключена во всем проекте.
Подробнее об инспекциях и о том, что с ними можно сделать, — на этой странице.
Refactor This (рефакторинг кода): ⌃T / Ctrl+Alt+Shift+T
Как и другие IDE JetBrains, WebStorm предлагает широкие возможности рефакторинга. Чтобы быстро перейти к списку доступных рефакторингов выбранного кода, нажмите ⌃T / Ctrl+Alt+Shift+T.
Go to Declaration (переход к объявлению): ⌘B or ⌘+Click / Ctrl+B or Ctrl+Click
WebStorm позволяет мгновенно перейти к объявлению символа: просто нажмите ⌘ или Ctrl и щелкните на символ. Можно также поместить на него курсор и нажать ⌘B / Ctrl+B. Кроме того, это сочетание клавиш позволяет перейти к файлу, на который есть ссылка, или импортированному модулю.
Если WebStorm обнаруживает несколько возможных объявлений функции, вам будет предложено выбрать нужное из раскрывающегося списка.
Code completion with replace (автодополнение кода с заменой): ⇥ / Tab
Когда вы начинаете вводить код в WebStorm, автоматически появляется всплывающее окно автодополнения. Чтобы выбрать один из предложенных вариантов, можно просто нажать ↵ / Enter. Но если вы хотите заменить один вариант на другой, нажмите ⇥ / Tab, и вместо подставленного элемента появится выбранный.
Extend Selection (расширение области выделения): ⌥↑ / Ctrl+W
Действие Extend Selection позволяет быстро расширить область выделения, не используя мышь. Чтобы снова сузить область, используйте сочетание клавиш ⌥↓ / Shift+Ctrl+W.
Run (запуск): ⌃⌥R / Alt+Shift+F10
Самый просто способ запустить одну из конфигураций запуска проекта — нажать ⌃⌥R в macOS или Alt+Shift+F10 в Windows/Linux и выбрать нужную конфигурацию во всплывающем окне.
Подсказка: чтобы начать отладку, не запуская конфигурацию, выберите из списка конфигурацию запуска и, удерживая ⇧ / Shift, нажмите ↵ / Enter.
Expand Live Template (развернуть шаблон Live Template): ⇥ / Tab
Шаблоны Live Template экономят массу времени. Наберите короткое сокращение и нажмите ⇥ / Tab, чтобы развернуть его в код. Кроме того, WebStorm поддерживает аббревиатуры Emmet для HTML и CSS — их тоже можно развернуть с помощью сочетания клавиш ⇥ / Tab.
Чтобы перейти в шаблоне от одного заполнителя переменной к другому, еще раз нажмите ⇥ / Tab.
WebStorm включает в себя большую коллекцию шаблонов Live Template, в том числе постфиксные шаблоны. Вы также можете добавить собственные пользовательские шаблоны. Подробнее о работе с шаблонами Live Template — в этой статье в блоге.
Multiple carets (несколько курсоров): ⌥+Click / Alt+Click
Очень популярная возможность использования нескольких курсоров есть и в WebStorm. Чтобы добавить или удалить дополнительные курсоры, нажмите и удерживайте ⌥ / Alt, а затем щелкните там, куда нужно поместить следующий курсор, чтобы эти места можно было редактировать одновременно.
Подробнее о работе с несколькими курсорами — в нашей документации.
Scratch File (вспомогательный файл): ⇧⌘N / Ctrl+Alt+Shift+Insert
Вспомогательные файлы (scratch files) позволяют быстро создавать образцы кода или делать заметки по ходу работы в IDE, не затрагивая рабочие файлы проекта. Вспомогательные файлы сохраняются в IDE и доступны из любого проекта.
Другие сочетания клавиш
Интересно, что еще есть в запасе у WebStorm? О других сочетаниях клавиш можно узнать из списка горячих клавиш, доступного из главного меню IDE — Help | Keymap Reference, — или на нашем веб-сайте.
Можно также перейти в Preferences / Settings | Keymap или просто начать набирать имя действия во всплывающем окне Search Everywhere.
Надеемся, что эти сочетания клавиш помогут вам сэкономить время. Какое сочетание ваше любимое? Расскажите об этом в комментариях!
Ваша команда WebStorm
The Drive to Develop
IntelliJ IDEA — настройка, горячие клавиши, debugging — введение в Java 025 #
Сегодняшний программист очень сильно отличается от программиста 90-х.
Блокноты сменились мощными инструментами, которые подсказывают нам даже эффективные методы решения. Порой, кажется, что ещё чуть-чуть и людям точно не надо будет учить программирование, потому что Idea сделает всё сама.
Но пока этого не случилось нам стоит потратить немного времени на настройку самого главного инструмента, в котором мы пишем код. Idea может очень многое. Очень. В этой главе мы рассмотрим несколько горячих клавиш, некоторые типы подсказок и базисные вещи, которые нам предлагает рефакторинг и дебаггинг.
Давайте на секунду отвлечёмся от самого кодинга и попробуем настроить наш инструмент для работы с Java и подтянуть наши скилы для работы с ним.

Рефакторинг #
Alt + F6 — одна из самых полезных функций рефакторинг. Переименование переменной во всём коде программы, сколько бы раз она не упоминалась.
Для этого надо выделить название метода, класса или переменной и вызвать из контекстного меню или горячими клавишами безопасное переименование. Очень удобно и для тех случаев, когда класс создан с грамматической ошибкой. IDEA переименовывает и файл и класс одновременно.

Не только hotkeys #
Горячие клавиши очень полезны в работе, но всё же не все функции доступны через клавиши.
Стоит выделить время и посмотреть что может программа: подобрать цветовую гамму, шрифты и их размер, научиться делить окна на рабочие зоны.
Как открыть одновременно 2 класса в IDEA? #
Например мы можем работать одновременно в нескольких классах (файлах). Эта функция доступна нам, если мы правой кнопкой нажмём на вкладку файла в окне, а затем на “Split Vertically” или “Split Horizontally”. Это очень удобно, когда программа состоит из больше, чем одного класса.

Как добавить плагин в intellij idea? #
File -> Settings -> Plugins здесь можно посмотреть, что уже установлено или добавить новый полезный плагин.
Например мне оказался очень полезен плагин Grazie — проверка орфографии.

Проверка правописания в Intellij Idea для русского текста #
File -> Settings -> Editor -> Proofreading
Здесь можно добавить те языки, которые нужны в работе над кодом и документацией.

Горячие клавиши #
“Alt + h + k”. В Idea есть возможность вызвать помощника по горячим клавишам “Alt + h + k” открывает pdf файл, где описаны поддерживаемые вызовы.
Настройка консоли #
Порой выдача в консоли не всегда очевидна или понятна. Или требуется пересчитать элементы. “CTRL + F” поможет нам в поиске определённых символов или слов и подсветит их.

Отладка программы #
Отладка Java кода в IDEA. Основные возможности отладчика.