Всем привет! Перед самим списком плагинов, горячих клавиш и т. п. небольшой дисклеймер.
Думаю каждый разработчик хоть раз встаёт перед трудным вопросом: Где и как писать код? Многие "тру" программисты тут же ответят: VIM NVIM и другие консольные редакторы. Но мы то с вами нормальные люди и хотим разрабатывать с удобством и комфортом. Хотим облегчить процесс кодинга.
Именно поэтому, многие программисты и отдают предпочтение ide'шкам, а не консольным редакторам.
После установки любой современной ide, у вас наверняка наступает ощущение абсолютной радости (особенно, если вы раньше вообще не программировали). Но после первых пары дней, вы узнаете о такой потрясающей вещи как плагины. Да. Это то, что может сделать опыт работы с ide ещё более простым, понятным, комфортным.
Когда я только начинал свой путь в разработке, я решил использовать PyCharm (соотвественно, для разработки на Python). И по моему глубокому убеждению не прогадал. PyCharm относительно лёгкая, относительно минималистичная ide'шка. Но не смотря на это, PyCharm - мощнейший инструмент для написания кода. Всё, начиная от подсветки синтаксиса и подсказок типов и заканчивая возможностью делать рефакторинг за одно сочетание клавиш, приводить весь код к единому стандарту, подключаться к базе данных и FTP/SSH, всё это может делать наш горячо любимый PyCharm.
Так зачем же тогда такому прекрасному редактору ещё и плагины? Всё очень просто, плагины позволяют нам добавить узкоспециализированные фичи, который просто не помещаются в стандартную "библиотеку" PyCharm.
Но в интернете практически нет статей посвящённых набору крутых плагинов, такие статьи разбросаны по всему интернету и найти в них ценный материал крайне сложно, поэтому, надеюсь, эта статья и станет своего рода базой, единым топом крутых плагинов для наших любых ide от JetBrains и для PyCharm в частности.
Итак, начнём с плагинов, я буду перечислять их примерно отсортировав по степени важности (по моему мнению).
Топ плагинов для PyCharm:
Tabnine — подсказки с использованием ИИ. Очень крутой плагин, сильно помогает при написании кода, использую всегда.
-
Translation — супер полезный плагин, позволяет запустить переводчик прямо из кода.
Использование: выделить нужный текст, нажать ПКМ и выбрать Translate/Translate and Repace. Либо нажать в правом верхнем углу на иконку перевода.
-
PyLint — линтер для Python, указывает на плохой код.
Использование: выбрать в нижнем меню PyLint и запустить проверку.
-
MyPy — проверка типов в Python (чтобы не допускать ошибки связанные с типом возвращаемых значений).
Использование: выбрать в нижнем меню MyPy и запустить проверку.
-
SonarLint — указывает на различные ошибки в нейминге переменных/функций/классов.
Использование: Ctrl+Shift+S или выбрать в нижнем меню SonarLint и запустить проверку.`
Python Security — проверяет код на уязвимости, работает автоматически.
-
Quick File Preview — посмотреть файл не открывая его, полезен если вы постоянно бегаете по файлам в поисках буквально 1 строчки и нет смысла полностью открывать файл (в данный момент этот функционал уже реализован в PyCharm: https://www.jetbrains.com/help/idea/2020.3/using-code-editor.html#preview-tab).
Использование: Один раз кликнуть на файл.
-
String Manipulation — работа с названиями переменных/функций и т. п. (можно привести к snake_case, camelCase и т. п.),
Использование: выделить нужное слово, нажать ПКМ, нажать String Manipulation, нажать Switch Case и выбрать нужный пункт.
Rainbow Brackets — красит скобочки в свой цвет, нужно чтобы чётко видеть иерархию скобок.
-
Python Smart Execute — запустить блок кода в консоли, не запуская при этом саму программу (к примеру для теста на работоспособность).
Использование: выделить код и Alt+Shift+A, или нажать ПКМ и выбрать Smart execute...
-
MultiHighlight — выделить какое-либо название цветом (к примеру чтобы не забыть отрефакторить этот кусок).
Использование: Выделить кусок и нажать Ctrl+'
-
Dummy Text Generator — сгенерировать рандомное предложение в различных стилях. Бывает полезно для теста функционала (к примеру, что текст отображения не вылазит за рамки).
Использование: Нажать ПКМ, выбрать Generate (либо Alt+Insert), выбрать Generate Dummy Text.
-
Randomness — сгенерировать случайное число, строку и т. п.
Использование: нажать Alt+R и выбрать нужное действие.
CodeGlance — добавляет карту с кодом в правую часть окна.
-
Extra Icons — изменяет стандартные иконки.
Использование: Включить Settings/Appearance Behavior/Extra Icons
Mario Progress Bar — изменяет стандартный прогресс бар на марио.
Теперь предлагаю перейти на интересные сочетания клавиш, которые позволят вам быстрее выполнять стандартные действия, да и просто ускорят вашу разработку (кнопки для обычной, НЕ МАКОВСКОЙ клавиатуры).
Горячие клавиши:
Ctrl+Alt+S — Перейти в настройки (откроется та часть где вы остановились).
Ctrl+Shift+Стрелочки (вверх, вниз) — Переместить строчку вверх или вниз.
Ctrl+D/Y — Дублировать строчку/Удалить строчку.
Alt+Enter - Привести код к принятым стандартам (для Python - PEP8).
Ctrl+B — Переместиться к реализации данного класса/метода и т. п.
Ctrl+R — Изменить название класса/функции и т. п. по всему проекту.
Double tap on Shift - поиск в классе, функции, файле, PyCharm action или везде.
Ctrl+J — Использовать шаблон кода.
Alt+Enter — произвести настройку класса/функции и т. п. (к примеру указать типы принимаемых и возвращаемых значений).
Ctrl+E — Навигация по файлам (отображает список файлов в хронологическом порядке).
Ctrl+Alt+M — Объединить выделенный код в функцию/метод.
Ctrl+N — Найти класс/метод и т. п. по названию (по всем местам).
Ctrl+Shift+N — Найти файл по названию (по всем местам).
Alt+F7 — Посмотреть где используется класс/метод/функция и т. п.
Ctrl+F12 — Показывает структура файла (класса, функции и т. п).
Думаю про горячие клавиши всё понятно, тут главное не спутать их :)
Под конец предлагаю рассмотреть интересные настройки, которые улучшат ваш опыт работы с ide.
Настройки PyCharm:
-
Настроить интерпретатор. Тут вы сможете изменить версию Python, добавить библиотеки и ещё много чего интересного.
File -> Settings -> Project:<name> -> Project Interpreter
-
Изменить шрифты, размеры и т. д.
File -> Settings -> editor -> font
-
Поменять цветовую схему UI.
File -> Settings -> editor -> color scheme
-
Deploy на сервер. Эта настройка открывает нам целый мир удобного деплоя, если будет интересно, могу написать отдельную статью просвещённую деплою.
Tools -> Deployment -> Configuration
-
Добавление плагинов.
File -> Settings -> Plugins
-
Это не совсем настройка, но всё же находится в меню, так что я решил добавить это сюда. Позволяет посмотреть небольшую статистику своей продуктивности.
Help -> MyProductivity
На этом основные настройки заканчиваются, да их не так много как тех же плагинов или хоткеев, но для начала думаю достаточно.
Спасибо что прочитали эту статью, надеюсь вы смогли подчерпнуть с неё нечто новое.
Пишите свои крутые плагины, хоткеи, настройки, если сообществу понравится я обязательно добавлю их в статью.
Мой GitHub: https://github.com/Ryize
Комментарии (18)
SiteCenter
10.09.2022 11:52+2Более 5 лет использовал PhpStorm в качестве основной среды разработки.
В этом году перешёл на Neovim - да, потратил порядка недели на его настройку, порог входа значительно выше, чем у Jetbrains, зато теперь:
Проект запускается в десятки! раз быстрее;
Настройки легко перенести на другое устройство;
За счёт продуманного управления с клавиатуры процесс разработки стал гораздо, гораздо проще, ибо не то, чтобы до мышки, но даже до стрелочек на клавиатуре не нужно тянуться (в Jetbrains такого результата не добиться, проверял);
Гораздо лучше обстоят дела с обновлениями (использую Fedora - и Jetbrains на линуксе работает ужасно, начиная от способа установки и включая способ обновления). До этого использовал Windows, до этого MacOS - Jetbrains на каждой из этих систем выглядит монструозно, избыточно монструозно, слишком перегруженно.
Отсутствие обязательной ежемесячной/ежегодной подписки;
В целом Neovim при грамотной (да, это сложно сделать) настройке на порядок быстрее и удобней, чем ide от Jetbrains. P.s: шрифты для Neovim использую от Jetbrains, ибо они выглядят превосходно =)
t38c3j
10.09.2022 12:29+1Не сказал бы что это критично, 10 секунд запуска или 1 секунда. Кто эти люди, которым приходиться каждую минуты открывать проекты, чтоб жаловаться на потраченное время?
У JetBrains есть синхронизация настроек
Тут увы, но это решается через некий костыль в виде кастомной раскладки с несколькими слоями если надо
В чем заключается проблема с обновлениями? Использую тоже fedora и обновления в один клик ставятся через jetbrains toolbox. Монструозность можно кастрировать отключив не нужные плагины, возможности и т.д.
Для разработчика если это его хлеб, заплатить за годовую лицензию всего пака как капля в море.
Я не использовал Neovim, но погуглив некоторые сценарии использование показалось менее удобные инструменты дебаггинга, профайлинга, просмотр базы данных, просмотр и управление гитом... Хотя я понимаю что это дело привычки и принятия других концептов.
black_mou5e
12.09.2022 15:35+1Любой инфраструктурщик/devops/sre/fullstack, у которых более 4 проектов на разных стеках, которые еще и зависят друг от друга :)
Как человек который использовал 5 ide от jetbrains одновременно, могу сказать что тут все так просто. Настройки между ними не шарятся, и для каждой ide надо делать все в ручную. Про то что в одной ide плгин есть, а в другой просто нет - я уже молчу.
Можно попробовать пользоваться IdeaVim, но это боль. (Как и любой vim-like плагин, где угодно кроме firefox)
Toolbox в линухе конечно удобно, но мусорно. Все еще ставлю руками в /opt как старовер
Тут спорить бесполезно, это факт. Кроме того, что не все имеют возможность это сделать (не финансово, а вы поняли о чем я).
nitrovatter
10.09.2022 11:55Могу порекомендовать плагин, добавляющий колонку с превью кода, наподобие того что есть в Sublime Text.
Infinitive1 Автор
10.09.2022 11:57Добрый день, спасибо за ваш комментарий, подобное делает добавленный в статью плагин (14 позиция) - CodeGlance.
Может вы заметили у названого вами плагина (Code Outline 2) какие-то преимущества?
QuAzI
11.09.2022 08:42Всё это лютые баяны, обсосанные сотни раз тут и на других площадках.
А вы попробуйте DataGrip?! Вот уж где мастхев для DB затыкающий все среды от MSSQL до Navicat просто в лёт.
Ну или хоть бы кто написал, что тот же Kotlin от JB теперь поддерживается в Jupyter Project. Да-да, тот самый который Jupyter Notebook для пайтона, который с кодом посреди документации и красивыми выхлопами туда же.
JB вообще офигенны, если б у них ещё кроссплатформенная замена ShareX была и штук для разгребания логов заменяющий lnav/stern/multitail...
wibotwi
12.09.2022 07:19Translation
Очень специфичный, многим вообще не нужен.
PyLint , MyPy SonarLint
К сожалению это всё полная лажа. У нас все девелоперы перешли на Vscode только из-за Pyright и Black
Quick File Preview
встроенная функциональность во все Jetbrains ide
String Manipulation
не помню точно, но вроде jetbrains сами это умеют. Опять же, очень специфично, свой код я пишу в том стиле как мне надо, а чужой код я не буду тратить время на переименовывание.
Rainbow Brackets
уже ответили что это зло
Python Smart Execute
это же встроено в Pycharm, зачем повторять то что уже есть?
MultiHighlight
это вместо TODO коммента? но ведь в комменте можно какие-то подсказки оставить а не просто цвет
Dummy Text Generator, Randomness
никогда в жизни не нужно было
CodeGlance
разве это не встроено в ide?
Extra Icons, Mario Progress Bar
Как это может попасть в топ плагинов? это же сугобо индивидуальные свистелки перделки, не несущие функциональности
Удивлён что нет в списке плагина BrowseWordAtCaret. Это первый плагин, который я ставлю. Он выделяет во всём файле выделенный текст. Это есть в notepad++ и cudatext, но почему-то остальные ide не включают такую базовую функциональность.
хоткеи и какие-то пункты меню
таких cheat sheet в инете как грязи, включая ютуб ролики с выступлениями самих джетбреновцев. особенно умиляет что у вас нет маковских хоткеев.
Infinitive1 Автор
12.09.2022 16:021) Это в первую очередь мой топ и моего окружения и мы пользуемся Translate, поэтому он включён.
2) PyLint , MyPy, SonarLint - по аналогии с первым пунктом, я и все мои коллеги пользуемся ими. Black используем через стороннюю библиотеку.3) Quick File Preview - я не видел подобную функциональность в PyCharm.
4) String Manipulation- я не видел подобную функциональность в PyCharm.
5) У меня есть проекты где куча вложенных вызовов, ничего с этим не сделать, так что Rainbow Brackets спасает.
6) MultiHighlight - используется при мелких недоработках (пришла в голову идея, ты быстро написал кривенький код и неудобные моменты выделил, потом вернулся и сразу исправил)
7)
Как это может попасть в топ плагинов? это же сугобо индивидуальные свистелки перделки, не несущие функциональности
Я изначально сказал, что это мой топ. Я добавляю свои прикольные плагины и хоткеи, которые нравятся мне и моим коллегам.
8)
Удивлён что нет в списке плагина BrowseWordAtCaret
Я не пользуюсь этим плагином, поэтому его нет в топе, если люди напишут, что они его часто используют, то добавлю.
wibotwi
12.09.2022 16:20надеюсь, эта статья и станет своего рода базой, единым топом крутых плагинов для наших любых ide от JetBrains и для PyCharm в частности.
и
Я изначально сказал, что это мой топ. Я добавляю свои прикольные плагины и хоткеи, которые нравятся мне и моим коллегам.
Мне видится противоречие в этих словах. Какова цель статьи? Поделиться с миром полезными вещами, чтобы сделать мир лучше. Или цель повыпендриваться? Как вариант можно было бы отдельным пунктом указать "а вот еще набор прикольных плагинов", чтобы как-то разделить общественное от личного.
если люди напишут, что они его часто используют, то добавлю.
Теперь уже совсем непонятно, какие люди имеются ввиду. Это же ваш топ, значит пока вы им не начнете пользоваться, то и в топе не появится? Или это топ ваших коллег и "люди" это сотрудники вашей компании?
3) Quick File Preview - я не видел подобную функциональность в PyCharm.
https://www.jetbrains.com/help/idea/2020.3/using-code-editor.html#preview-tab
Infinitive1 Автор
12.09.2022 17:19Все изначальные плагины, которые были в статье были взяты с моего опыта. Я не добавлял плагины которыми не пользовался лично (фраза: это мой топ именно об этом).
Но сейчас, когда статья уже вышла, я добавляю все плагины о которых пишут в комментариях (если, конечно, подобные плагины оценивают другие пользователи хабра).
https://www.jetbrains.com/help/idea/2020.3/using-code-editor.html#preview-tab
Я про это не знал, благодарю за замечание, указал в статье разъяснение
wibotwi
12.09.2022 17:37Вот еще парочка полезных плагинов.
RainbowCSV
Раскрашивает каждую колонку в свой цвет в csv файлах. Иногда бывает надо подправить одну строчку, или посмотреть одно значение, и очень неудобно считать номер столбика вручную по запятым.
Line Sorter
Сортирует выделенные строчки. Так же как и BrowseWordAtCaret я не понимаю почему Jetbrains не реализует это в самой ide. Это же такие простые вещи, которые всегда нужны.
Andrey_Solomatin
У меня мощная машина, в общем я с вами согласен.
Нажать рефакторинг и сделать руками выглядит быстрей.
Чтобы выполнить файл и продолжить в консоли есть python -i, в пайчарме в настройках запуска есть галочка для этого. Запускается весь файл, а не его часть, но у меня небольшие функции и запускать кусок из них нет смысла.
Планин, чтобы было удобнее писать плохой код.
Хотим облегчить процесс кодинга? Но как?
Из хоткеев:
ALT+ENTER quick fix.
double tap on SHIFT (search everywhere), это найти класс, функцию, файл, PyCharm action в одном меню. 4 хоткея в одном.
CTRL + RMB -> got to declaration/show usages (зависит от контекста где кликать).
В меню Help > MyProductivity есть статистика, но мне она кажется странной.
Infinitive1 Автор
Благодарю за ваш комментарий, добавил ALT+ENTER (4 позиция), double tap on SHIFT (7 позиция).В основные настройки добавил Help -> MyProductivity (6 позиция).