Записки программиста
Краткая шпаргалка по сочетаниям клавиш в IntelliJ IDEA
Как ранее уже сообщалось, я начал активно изучать возможности IntelliJ IDEA. В частности, я стараюсь запомнить наиболее востребованные хоткеи, чтобы выполнять большую часть работы, не отрывая руки от клавиатуры, как это происходит при программировании в Vim. По моим наблюдениям, это реально экономит кучу времени. Я сделал для себя шпаргалку по хоткеям IDEA, которую вы найдете под катом. Полагаю, она также пригодится кому-то из посетителей данного блога.
Примечание: Те же сочетания клавиш работают и в других продуктах JetBrains, например, PyCharm и CLion.
Ниже не приводятся общеизвестные и очевидные сочетания вроде Ctr+C, Ctr+V или Ctr + S. В IntelliJ IDEA многие хоткеи имеют парный хоткей отличающийся только тем, что в нем дополнительно участвует клавиша Shift. Обычно она добавляет в том или ином виде выделение текста. Например, Ctr + End переводит курсор в конец файла, а Ctr + Shift + End выделяет код от текущей позиции до конца файла. Догадаться о существовании парных хоткеев несложно, поэтому далее они не приводятся. Наконец, если в любом диалоге IntelliJ IDEA вы видите подчернутые буквы, знайте, что сочетание Alt + буква равносильно использованию соответствующего контрола (обычно кнопок). Например, быстро запушить код в репозиторий можно путем нажатия Ctr + K, Alt + I, Alt + P, а затем снова Alt + P.
Итак, основные сочетания следующие.
Редактирование:
Ctr + Z | Undo, отменить последнее действие |
Ctr + Shift + Z | Redo, отменить последнюю отмену действия |
Ctr + Shift + V | Расширенная вставка из буфера обмена (с историей) |
Ctr (+ Shift) + W | Инкрементальное выделение выражения |
Ctr + влево/вправо | Перемещение между словами |
Ctr + вверх/вниз | Прокрутка кода без изменения позиции курсора |
Ctr + Home/End | Переход в начало/конец файла |
Shift + Del (Ctr + Y) | Удаление строки, отличие в том, где потом окажется курсор |
Ctr + Del | Удалить от текущей позиции до конца слова |
Ctr + Backspace | Удалить от текущей позиции до начала слова |
Ctr + D | Дублировать текущую строку |
Tab / Shift + Tab | Увеличить / уменьшить текущий отступ |
Ctr + Alt + I | Выравнивание отступов в коде |
Ctr + Alt + L | Приведение кода в соответствие code style |
Ctr + / | Закомментировать/раскомментировать текущую строку |
Ctr + Shift + / | Закомментировать/раскомментировать выделенный код |
Ctr + -/+ | Фолдинг, свернуть/развернуть |
Ctr + Shift + -/+ | Фолдинг, свернуть/развернуть все |
Ctr + Shift + . | Сделать текущий скоуп сворачиваемым и свернуть его |
Ctr + . | Сделать текущий скоуп несворачиваемым |
Ctr + R | Замена в тексте |
Ctr + Shift + R | Замена во всех файлах |
Окна, вкладки:
Alt + влево/вправо | Перемещение между вкладками |
Ctr + F4 | Закрыть вкладку |
Alt + циферка | Открытие/закрытие окон Project, Structure, Changes и тд |
Ctr + Tab | Switcher, переключение между вкладками и окнами |
Shift + Esc | Закрыть активное окно |
F12 | Открыть последнее закрытое окно |
Ctr + колесико | Zoom, если он был вами настроен |
F11 | Поставить или снять закладку |
Ctr + F11 | Аналогично с присвоением буквы или цифры |
Shift + F11 | Переход к закладке (удаление — клавишей Delete) |
Ctr + Число | Быстрый переход к закладке с присвоенным числом |
Подсказки и документация:
Ctr + Q | Документация к тому, на чем сейчас курсор |
Ctr + Shift + I | Показать реализацию метода или класса |
Alt + Q | Отобразить имя класса или метода, в котором мы находимся |
Ctr + P | Подсказка по аргументам метода |
Ctr + F1 | Показать описание ошибки или варнинга |
Alt + Enter | Показать, что нам предлагают «лампочки» |
Дважды Shift | Быстрый поиск по всему проекту |
Ctr + Shift + A | Быстрый поиск по настройкам, действиям и тд |
Alt + вниз/вверх | Перейти к следующему/предыдущему методу |
Ctr + [ и Ctr + ] | Перемещение к началу и концу текущего скоупа |
Ctr + F | Поиск в файле |
Ctr + Shift + F | Поиск по всем файлам (переход — F4) |
Ctr + F3 | Искать слово под курсором |
F3 / Shift + F3 | Искать вперед/назад |
Ctr + G | Переход к строке или строке:номеру_символа |
Ctr + F12 | Список методов с переходом к их объявлению |
Ctr + E | Список недавно открытых файлов с переходом к ним |
Ctr + Shift + E | Список недавно измененных файлов с переходом к ним |
Ctr + H | Иерархия наследования текущего класса и переход по ней |
Ctr + Alt + H | Иерархия вызовов выбранного метода |
Ctr + N | Поиска класса по имени и переход к нему |
Ctr + Shift + N | Поиск файла по имени и переход к нему |
Ctr + B | Перейти к объявлению переменной, класса, метода |
Ctr + Alt + B | Перейти к реализации |
Ctr + Shift + B | Определить тип и перейти к его реализации |
Shift + Alt + влево | Перемещение назад по стеку поиска |
Shift + Alt + вправо | Перемещение вперед по стеку поиска |
F2 / Shift + F2 | Переход к следующей / предыдущей ошибке |
Shift + Alt + 7 | Найти все места, где используется метод / переменная |
Ctr + Alt + 7 | Как предыдущий пункт, только во всплывающем окне |
Генерация кода и рефакторинг:
Ctr + Space | Полный автокомплит |
Ctr + Shift + Space | Автокомплит с фильтрацией по подходящему типу |
Alt + / | Простой автокомплит по словам, встречающимся в проекте |
Ctr + I | Реализовать интерфейс |
Ctr + O | Переопределить метод родительского класса |
Ctr + J | Генерация шаблонного кода (обход по итератору и тд) |
Ctr + Alt + J | Обернуть выделенный код в один из шаблонов |
Alt + Insert | Генератор кода — сеттеров, зависимостей в pom.xml и тд |
Shift + F6 | Переименование переменной, класса и тд во всем коде |
Ctr + F6 | Изменение сигнатуры метода во всем коде |
F6 | Перемещение метода, класса или пакета |
F5 | Создать копию класса, файла или каталога |
Shift + F5 | Создать копию класса в том же пакете |
Alt + Delete | Безопасное удаление класса, метода или атрибута |
Ctr + Alt + M | Выделение метода |
Ctr + Alt + V | Выделение переменной |
Ctr + Alt + F | Выделение атрибута |
Ctr + Alt + C | Выделение константы (public final static) |
Ctr + Alt + P | Выделение аргумента метода |
Ctr + Alt + N | Инлайнинг метода, переменной, аргумента или константы |
Ctr + Alt + O | Оптимизация импортов |
Ctr + ~ | Быстрое переключение цветовой схемы, code style и тд |
Alt + F12 | Открыть/закрыть терминал |
F10 | Запустить последнюю запущенную программу или тест |
Shift + F10 | Запустить открытую в редакторе программу или тест |
Shift + Alt + F10 | Запустить что-то из списка того что запускалось раньше |
Ctr + F2 | Остановить программу |
Ctr + Alt + A | Добавить в систему контроля версий |
Ctr + K | Сделать коммит в систему контроля версий |
Ctr + Shift + K | Сделать пуш в систему контроля версий |
Ctr + Shift + P | В Scala-плагине определяет implicit параметры |
Ctr + Shift + Q | В Scala-плагине определяет implicit преобразования |
Понятное дело, в этой шпаргалке названы далеко не все возможности IntelliJ IDEA. Всем заинтересованным лицам я настоятельно рекомендую вот прямо брать и читать ее замечательную документацию, там очень много интересного. Жаль только, что документация не доступна в виде одного большого PDF файла.
Дополнение: В последних версиях IDEA можно использовать несколько курсоров, разместив их либо при помощи комбинации Alt+Shift+ЛКМ, либо вертикальным выделением при помощи клика средней клавишей мыши. Держа на вооружении сочетание Ctr + влево/вправо, осуществляющего переход между словами, а также другие, можно очень удобно редактировать сразу несколько строк кода.
Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.
Idea hot keys
Обычно в таких постах люди берут документацию от JetBrains и просто вываливают все комбинации горячих клавиш без разбора. Да, я тоже хранил такие странички в закладках, и да я тоже их больше не открывал. Но мы пойдем своим путем. Я расскажу только о том, чем сам пользуюсь, расскажу чем они помогают. Некоторые банальны, возможно вы все это уже знаете, тогда просто ставь лайк =) Я начну с самых нужных мне комбинаций горячих клавиш и пойду к самым банальным, но используемым мною.
Погнали:
Alt + F8 — evaluate expression окно. Очень полезная вещь, как узнал про неё, пользовался всегда. Сейчас на работе за соседним столом, на мониторе, висит стикер, на котором написано «Alt+F8». В данном окошке можно выполнять все, что угодно. Например, если у вас есть проблемное место в коде и 10 вариантов как решить его. Вместо того, чтобы 10 раз запускать код, доходите до него в дебаге, открываете окно evaluate expression и прогоняете все варианты PROFIT.
Ctrl + P — показывает вам список принимаемых методом параметров. Когда первый раз узнал про эту комбинацию, очень радовался т.к. приходилось переписывать вызов метода, чтобы увидеть список параметров. Так же если вы знаете все параметры и их много, это окошко постоянно выскакивает и мешает? Ctrl+P уберет его =)
Ctrl + Q — во вложенном окне покажет документацию к методу, чтобы не бегать в исходный код. Помогает почитать про принимаемые параметры и про возвращаемое значение.
В туже степь Ctrl + B — переход в исходный код класса\метода либо переход к объявлению переменной. Alt + F7 — покажет, где используется переменная\метод, альтернатива Ctrl+F. Пользуюсь редко, но сейчас вспомнил.
Shift + Shift (Double Shift, 2 раза подряд быстро нажать shift) — поиск всего и везде (ищет классы и файлы но не методы). Когда ты помнишь, что где-то что-то видел и даже пару букв из названия помнишь. Это окошко поищет за тебя. При поиске классов можно указывать часть имени или только первые 2 буквы. Например, BuRe найдет BufferedReader.
Ctrl + Shift + T – создание тестового класса. Если используется система сборки, то создаст класс в соответствии с правилами сборщика. Если не используется, то создаст рядом.
Ctrl + Shift + Space – умный комплишен, предлагает вам варианты подстановки значений с учетом контекста. Какой бы умный ни был, я вроде сам неплохо контекст понимаю, но иногда выручает.
Ctrl + Shift + A – поиск действия. Если вы вдруг забыли hot keys для действия, но помните его имя, можете его найти. Найти можно вообще любое действие и запустить, например дебаг.
Оригинальные комбинации горячих клавиш закончились, сейчас пойдут банальные (причем без картинок): Ctrl + Alt + V – если вы написали, что-то и надо положить это в переменную, нажимаете эти клавиши и идея сама выведет тип + задаст стандартное имя. Очень помогает, когда ты запутался и не знаешь, какой тип переменной тебе нужен. Так же работает, если дописать в конец выражения «.var» и нажать Tab или Enter
String[] strings = new String[10];
Ctrl + Alt + M – вынесет выделенный кусок кода в отдельный метод, hot key для рефакторинга очень полезный. Alt + Enter – комплишен для решения любых проблем. На самом деле выручает почти всегда. Если есть какая-либо ошибка компиляции, если я не знаю точного решения, первым делом смотрю, что предложит идея. Alt + Insert – автогенерация всего и вся, методов, конструкторов, классов… (тут будет картинка, она снизу)
Ctrl + O –переопределение методов родителя Ctrl + K – при работе с гитом – коммит Ctrl + Shift + K – при работе с гитом — пуш Ctrl + Alt + S – настройки IDEA Ctrl + Alt + Shit + S – настройки проекта На этом, пожалуй, все. Я не считаю, что мышка это зло и настоящий кодер пользуется только клавиатурой. Да наверно это иногда удобно. Но часто приходиться лезть в браузер, что-то искать и возвращаться. Если надо внести мелкие изменения или просто что-то посмотреть, лень тянуться к клаве, если мышка уже в руке. Но те, что я написал заменяют длинную последовательность действий на одно нажатие. Кстати для идеи есть плагин, которые поможет вам освоить hotkeys. Каждый раз, когда вы будете использовать мышку, он будет показывать надоедливую надпись. Там будет написано, какую комбинацию горячих клавиш надо было использовать и сколько раз вы пользовались мышкой. Мне он через неделю надоел =) Плагин называется Key Promoter X, найти можно в настройках идеи (вы же помните, как туда попасть?). Видео от JetBrains откуда я впервые узнал о некоторых комбинациях. Пересматривал несколько раз, за раз все не унесешь. И да последняя комбинация, которая пригодилась мне однажды. Ctrl + Shift + U — смена регистра у слова. Например, если переменная теперь константа, не переписывать имя, а использовать Ctrl + Shift + U