10 случаев, когда можно обойтись без мыши при работе с IntelliJ IDEA
Многие, работая с IntelliJ IDEA, предпочитают использовать клавиатуру, а не мышь. Вы тоже? Тогда у нас есть для вас небольшой подарок. В этой статье мы расскажем о 10 распространенных ситуациях, в которых, оказывается, можно обойтись без мышки.
1. Изменение размера окна Project или другого активного окна
Окно Project — одно из самых используемых в IntelliJ IDEA. Часто бывает нужно увеличить или уменьшить его ширину. Вместо того, чтобы браться за мышку, нажмите Ctrl+Shift+Right (Windows или Linux) или ⇧⌘Right (macOS), чтобы увеличить ширину окна, а чтобы ее уменьшить — Ctrl+Shift+Left or или ⌘Left.
У других окон, например Run или Problems, можно увеличить высоту, нажав Ctrl+Shift+Up (Windows или Linux) или ⇧⌘Up (macOS), или уменьшить ее с помощью сочетаний клавиш Ctrl+Shift+Down или ⇧⌘Down.
2. Клавиша Esc — возврат в окно редактора, F12 — переход к последнему окну инструментов
Закончив работу в таких окнах, как Project, Debug, Maven и т. п., можно не кликать по окну редактора мышкой — просто нажмите Esc, чтобы вернуться в редактор.
Нажав на клавишу F12, можно перейти в последнее открытое окно инструментов, не вспоминая сочетание клавиш, назначенное именно этому окну.
На приведенном ниже gif-изображении Presentation Assistant не отображает текст «Escape», когда используется клавиша Esc для возврата в окно редактора.
Зависит ли действие, выполняемое при нажатии клавиш Esc (или любой другой клавиши), от контекста? Конечно, зависит. Перейдите в меню Settings -> Keymap -> Find Actions by Shortcut и нажмите Esc, чтобы узнать, как она сработает в разных контекстах.
3. Отображение окна
Давайте для начала разберемся, как многие разработчики выводят на экран окна в IntelliJ IDEA. Например, чтобы открыть окно Pull Requests, можно щелкнуть по вкладке Pull Requests на панели окон инструментов:
Здесь тоже можно обойтись без мыши. То есть сначала она понадобится, чтобы сделать одну вещь, а потом можно будет о ней забыть.
Наведя курсор на вкладку Pull Requests, можно увидеть, назначено ли этому окну сочетание клавиш. В данном случае сочетания клавиш нет. Давайте его назначим. Используйте действие Find, выполните поиск по строке «Pull Requests» с описанием «View | Tool window» и используйте сочетание клавиш Alt+Enter, чтобы назначить сочетание клавиш, например Ctrl+Shift+Alt+9.
Теперь можно его использовать, чтобы вывести или скрыть окно Pull Requests.
Если же окну уже назначено сочетание клавиш, например Alt+1 для окна Project или Alt+7 для окна Structure, оно будет показано, когда вы наведете курсор на соответствующую вкладку на панели окон инструментов.
Можно также нажать в IntelliJ IDEA клавиши Ctrl+Tab (или ⌃Tab), чтобы вызвать функцию Switcher и просмотреть список окон и недавно открытых файлов. Эта функция позволяет быстро перейти к имени нужного окна с помощью клавиш со стрелками.
Если вы предпочитаете работать со строкой меню, можно выбрать View | Tool windows и посмотреть список всех доступных окон.
4. Закрытие активного окна или всех окон
Закрыть или скрыть окно можно разными способами. Чтобы скрыть активное окно, нажмите Shift+Escape (или ⇧ Esc). Отдельные сочетания клавиш позволяют скрыть или отобразить нужное окно. Например, при нажатии Alt+9 (или ⌘9) будет показано окно Git. При повторном нажатии Alt+9 (или ⌘9) окно будет скрыто.
Кроме того, можно использовать сочетание клавиш Ctrl+Shift+F12 (⇧⌘ F12), чтобы скрыть или восстановить все окна.
5. Alt+Enter — просмотр предложений по иконке лампочки
Чтобы просмотреть предложения сниппетов, не обязательно щелкать по иконке лампочки. Перейдите к строке кода, где появилась лампочка, и нажмите Alt+Enter, чтобы вызвать Context actions и посмотреть предложения.
6. Объявление нового класса в нужном пакете при работе в окне редактора кода
Эта функция — настоящая скрытая жемчужина IntelliJ IDEA. Немногие разработчики знают о ней, а ведь она может быть очень полезна.
Если вам нужно создать класс во время работы в редакторе, нажмите Alt+Home (или ⌘ Up), чтобы перейти к панели навигации. Выберите пакет, в котором нужно объявить новый класс, интерфейс или другой объект, а затем вызовите новое диалоговое окно, нажав клавиши Alt+Insert (или ⌘ N). Введите имя, и готово.
Дополнительный совет: чтобы создать подпакет, добавьте имя пакета в качестве префикса. Например, при создании класса ‘NewClassInPackageSpace’ в новом подпакете, допустим, ‘space’, входящем в пакет ‘com’, введите «space.NewClassInPackageSpace» в новом диалоговом окне.
7. Переход между открытыми файлами
Для перехода между файлами в редакторе многие разработчики пользуются вкладками, но есть и более удобные способы.
i) Сочетания клавиш Alt+Right или Alt+Left обеспечивают быструю навигацию по последним файлам, с которыми вы работали. Однако в этом случае Presentation Assistant не показывает используемые сочетания клавиш.
Это сочетание удобно использовать для навигации по недавно открытым файлам, поскольку оно очень ускоряет перемещение.
На следующем gif-изображении показано, как использовать сочетания клавиш Alt+Right или Alt+Left, чтобы быстро перейти к другим файлам:
ii) Перейдите к вкладке Switcher (Ctrl+Tab в Windows и Linux, ^Tab в macOS), чтобы посмотреть список окон и файлов, с которыми вы недавно работали, и выберите окно или файл, которые нужно открыть.
iii) Чтобы посмотреть список файлов, с которыми вы недавно работали, нажмите Ctrl+E (или ⌘E). В списке указаны в том числе и типы недавно открытых файлов. Если нажать Ctrl+E еще раз при открытом диалоговом окне, в списке останутся только измененные вами файлы.
iv) Если вы не можете вспомнить, с каким файлом вы работали, нажмите Ctrl+Shift+E, чтобы перейти к списку Recent Locations: на экране появится пара строк из файла и его название. Если еще раз нажать это сочетание клавиш при открытом диалоговом окне, будут отображены недавно измененные файлы.
8. Быстрый просмотр источника классов, интерфейсов, перечислений, записей, методов, объявлений переменных и т. п.
Если вы читаете написанный вами тест и хотите быстро посмотреть определение метода, поместите курсор на название метода и нажмите Ctrl+Shift+I. Таким образом вам не придется переходить к другому классу, чтобы прочитать нужный код. Таким способом можно посмотреть определения классов, методов и любых других объектов. Функция так и называется — Quick Definition.
9. Изменение ширины и высоты диалогового окна
При вызове диалогового окна его высоту и ширину можно изменить с помощью сочетаний клавиш Ctrl+Shift+Left/Right/Up/Down (Windows и Linux) или ⇧⌘Left/Right/Up/Down (MacOS).
Обратите внимание: диалоговые окна не могут быть меньше определенного размера. Ограничения действуют независимо от того, меняете вы размер с помощью мыши или клавиатуры. Кроме того, сочетание клавиш не будет работать, если курсор находится в редактируемом элементе диалогового окна, например в текстовом поле или области текста.
10. Прокрутка текста в панели редактора без изменения положения курсора
Часто бывает нужно прокрутить панель редактора вверх или вниз, чтобы прочитать код. Если редактировать его при этом не нужно, то и сдвигать курсор из текущего положения вам не захочется.
Воспользуйтесь сочетаниями клавиш Ctrl+Up или Ctrl+Down (или ⌘Up/⌘Down) в панели редактора, чтобы прокрутить ее, не меняя положение курсора. Аналогичные сочетания клавиш Ctrl+Right и Ctrl+Left (или ⌘Left/⌘Right) можно использовать для прокрутки структуры каталогов вправо или влево в окне Project.
Дополнительный совет: чтобы читать код и перемещаться вверх и вниз в панели редактора было проще, можно свернуть методы, блоки кода или наборы операторов импорта, чтобы они занимали меньше места в окне редактора. Для этого нажмите Ctrl+Numpad – (Window и Linux) или ⌘Numpad – (macOS). Чтобы развернуть блок кода, нажмите Ctrl+Numpad + (Windows и Linux) или ⌘Numpad + (macOS). Это очень удобно при чтении или презентации кода, когда нужно, чтобы посторонний код не отвлекал вас и не занимал место на экране.
Если в классе много методов, а вам нужно прочитать код лишь для некоторых, сверните все методы, а затем разверните только нужные. Чтобы свернуть все методы, нажмите Ctrl+Shift+Numpad – (или ⇧⌘Numpad -). Чтобы развернуть весь код, нажмите Ctrl+Shift+Numpad + (или ⇧⌘Numpad +). При необходимости можно развернуть только отдельные блоки кода, чтобы читать код было удобнее.
Кроме того, бывает удобно перейти от одного объявления метода к другому с помощью сочетания клавиш Alt+Down (⌃Down) или Alt+Up (⌃Up).
В завершение
Независимо от того, чем вам удобнее пользоваться — мышкой или клавиатурой, — мы желаем вам удачной работы!
Ваша команда IntelliJ IDEA
The Drive to Develop
Автор оригинальной статьи:
Записки программиста
Краткая шпаргалка по сочетаниям клавиш в 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-группе.
Как изменить отступ уже написанному коду?
Столкнулся с проблемой перемещения кода. К примеру, я написал какой-то код и потом решил его добавить в цикл или в оператор и тд. Как мне весь имеющийся код переместить во внутрь того что я хочу. В ручную работать с BackSpace и Enter неудобно. Напрмер этот:
while pop < 5: for i in range(1): sys = random.randint(1, 10) en = int(input("Угадай: ")) if en == sys: pop = 0 print("Угадал")
Как все это за раз переместить в While?
Отслеживать
13.7k 12 12 золотых знаков 43 43 серебряных знака 75 75 бронзовых знаков
задан 22 фев 2023 в 19:15
13 2 2 бронзовых знака
Vim: /for
Задать максимальную длину строки pycharm. Рассуждения о длине строки
При возникновении ошибки PEP 8: E501 line too long (139 > 120 characters) нужно либо разбить код на несколько строчек, либо задать большее значение максимальной длины.
Для задания максимальной длины строки в PyCharm нужно из меню перейти в "File -> Settings -> Editor -> Code Style -> General: Right margin (columns)".
Немного рассуждений об оптимальном количестве символов в строке
Я обычно задаю длину 160 символов - это удобно. Программисты на Python могут покритиковать меня за несоблюдение стандартов PEP8, но у меня есть свой аргумент в пользу увеличения длины до 120 - 160 символов вместо 80, принятых в стандарте.
Раньше до появления больших мониторов 80 символов было актуально. Столько и влезало: структура папок слева, а справа окно редактирования кода в файле. Сейчас большие мониторы позволяют больше символов умещать на строке. Но опять-таки здесь важна золотая середина: если сделать строку больше 180 символов, то будет тоже неудобно - придётся мотать головой влево вправо. Ну или зрачками, хотя в качестве упражнения для глаз это полезно 🙂
Некоторые товарищи говорят, что нужно писать строки в 80 символов, так как при слиянии веток в репозитории и разрешения конфликта файлов будет удобно делать само слияние, то есть просматривать три окна: изменения на сервере, локальные изменения и результат. Но это тоже спорный момент, потому что не все дисплеи способны показать три окна шириной как минимум в 80 символов, например, ноутбуки.
И ещё могу добавить, что с использованием функциональных возможностей языка чаще всего не представляется возможным уместить код в 80 символов.
В заключение хочу сказать, что не стоит строго придерживаться правила 80 символов - пишите как удобнее вам.