Всем привет! Перед самим списком плагинов, горячих клавиш и т. п. небольшой дисклеймер.

Думаю каждый разработчик хоть раз встаёт перед трудным вопросом: Где и как писать код? Многие "тру" программисты тут же ответят: VIM NVIM и другие консольные редакторы. Но мы то с вами нормальные люди и хотим разрабатывать с удобством и комфортом. Хотим облегчить процесс кодинга.

Именно поэтому, многие программисты и отдают предпочтение ide'шкам, а не консольным редакторам.

После установки любой современной ide, у вас наверняка наступает ощущение абсолютной радости (особенно, если вы раньше вообще не программировали). Но после первых пары дней, вы узнаете о такой потрясающей вещи как плагины. Да. Это то, что может сделать опыт работы с ide ещё более простым, понятным, комфортным.

Когда я только начинал свой путь в разработке, я решил использовать PyCharm (соотвественно, для разработки на Python). И по моему глубокому убеждению не прогадал. PyCharm относительно лёгкая, относительно минималистичная ide'шка. Но не смотря на это, PyCharm - мощнейший инструмент для написания кода. Всё, начиная от подсветки синтаксиса и подсказок типов и заканчивая возможностью делать рефакторинг за одно сочетание клавиш, приводить весь код к единому стандарту, подключаться к базе данных и FTP/SSH, всё это может делать наш горячо любимый PyCharm.

Так зачем же тогда такому прекрасному редактору ещё и плагины? Всё очень просто, плагины позволяют нам добавить узкоспециализированные фичи, который просто не помещаются в стандартную "библиотеку" PyCharm.

Но в интернете практически нет статей посвящённых набору крутых плагинов, такие статьи разбросаны по всему интернету и найти в них ценный материал крайне сложно, поэтому, надеюсь, эта статья и станет своего рода базой, единым топом крутых плагинов для наших любых ide от JetBrains и для PyCharm в частности.


Итак, начнём с плагинов, я буду перечислять их примерно отсортировав по степени важности (по моему мнению).

Топ плагинов для PyCharm:

  1. Tabnine — подсказки с использованием ИИ. Очень крутой плагин, сильно помогает при написании кода, использую всегда.

  2. Translation — супер полезный плагин, позволяет запустить переводчик прямо из кода.

    Использование: выделить нужный текст, нажать ПКМ и выбрать Translate/Translate and Repace. Либо нажать в правом верхнем углу на иконку перевода.

  3. PyLint — линтер для Python, указывает на плохой код. 

    Использование: выбрать в нижнем меню PyLint и запустить проверку.

  4. MyPy — проверка типов в Python (чтобы не допускать ошибки связанные с типом возвращаемых значений).

    Использование: выбрать в нижнем меню MyPy и запустить проверку.

  5. SonarLint — указывает на различные ошибки в нейминге переменных/функций/классов.

    Использование: Ctrl+Shift+S или выбрать в нижнем меню SonarLint и запустить проверку.`

  6. Python Security — проверяет код на уязвимости, работает автоматически.

  7. Quick File Preview — посмотреть файл не открывая его, полезен если вы постоянно бегаете по файлам в поисках буквально 1 строчки и нет смысла полностью открывать файл (в данный момент этот функционал уже реализован в PyCharm: https://www.jetbrains.com/help/idea/2020.3/using-code-editor.html#preview-tab). 

    Использование: Один раз кликнуть на файл.

  8. String Manipulation — работа с названиями переменных/функций и т. п. (можно привести к snake_case, camelCase и т. п.),

    Использование: выделить нужное слово, нажать ПКМ, нажать String Manipulation, нажать Switch Case и выбрать нужный пункт.

  9. Rainbow Brackets — красит скобочки в свой цвет, нужно чтобы чётко видеть иерархию скобок.

  10. Python Smart Execute — запустить блок кода в консоли, не запуская при этом саму программу (к примеру для теста на работоспособность).

    Использование: выделить код и Alt+Shift+A, или нажать ПКМ и выбрать Smart execute...

  11. MultiHighlight — выделить какое-либо название цветом (к примеру чтобы не забыть отрефакторить этот кусок).

    Использование: Выделить кусок и нажать Ctrl+'

  12. Dummy Text Generator — сгенерировать рандомное предложение в различных стилях. Бывает полезно для теста функционала (к примеру, что текст отображения не вылазит за рамки).

    Использование: Нажать ПКМ, выбрать Generate (либо Alt+Insert), выбрать Generate Dummy Text.

  13. Randomness — сгенерировать случайное число, строку и т. п. 

    Использование: нажать Alt+R и выбрать нужное действие.

  14. CodeGlance — добавляет карту с кодом в правую часть окна.

  15. Extra Icons — изменяет стандартные иконки.

    Использование: Включить Settings/Appearance Behavior/Extra Icons

  16. Mario Progress Bar — изменяет стандартный прогресс бар на марио.


Теперь предлагаю перейти на интересные сочетания клавиш, которые позволят вам быстрее выполнять стандартные действия, да и просто ускорят вашу разработку (кнопки для обычной, НЕ МАКОВСКОЙ клавиатуры).

Горячие клавиши:

  1. Ctrl+Alt+S — Перейти в настройки (откроется та часть где вы остановились).

  2. Ctrl+Shift+Стрелочки (вверх, вниз) — Переместить строчку вверх или вниз.

  3. Ctrl+D/Y — Дублировать строчку/Удалить строчку.

  4. Alt+Enter - Привести код к принятым стандартам (для Python - PEP8).

  5. Ctrl+B — Переместиться к реализации данного класса/метода и т. п.

  6. Ctrl+R — Изменить название класса/функции и т. п. по всему проекту.

  7. Double tap on Shift - поиск в классе, функции, файле, PyCharm action или везде.

  8. Ctrl+J — Использовать шаблон кода.

  9. Alt+Enter — произвести настройку класса/функции и т. п. (к примеру указать типы принимаемых и возвращаемых значений).

  10. Ctrl+E — Навигация по файлам (отображает список файлов в хронологическом порядке).

  11. Ctrl+Alt+M — Объединить выделенный код в функцию/метод.

  12. Ctrl+N — Найти класс/метод и т. п. по названию (по всем местам).

  13. Ctrl+Shift+N — Найти файл по названию (по всем местам).

  14. Alt+F7 — Посмотреть где используется класс/метод/функция и т. п.

  15. Ctrl+F12 — Показывает структура файла (класса, функции и т. п).

Думаю про горячие клавиши всё понятно, тут главное не спутать их :)


Под конец предлагаю рассмотреть интересные настройки, которые улучшат ваш опыт работы с ide.

Настройки PyCharm:

  1. Настроить интерпретатор. Тут вы сможете изменить версию Python, добавить библиотеки и ещё много чего интересного.

    File -> Settings -> Project:<name> -> Project Interpreter

  2. Изменить шрифты, размеры и т. д.

    File -> Settings -> editor -> font

  3. Поменять цветовую схему UI.

    File -> Settings -> editor -> color scheme

  4. Deploy на сервер. Эта настройка открывает нам целый мир удобного деплоя, если будет интересно, могу написать отдельную статью просвещённую деплою.

    Tools -> Deployment -> Configuration

  5. Добавление плагинов.

    File -> Settings -> Plugins

  6. Это не совсем настройка, но всё же находится в меню, так что я решил добавить это сюда. Позволяет посмотреть небольшую статистику своей продуктивности.

    Help -> MyProductivity

На этом основные настройки заканчиваются, да их не так много как тех же плагинов или хоткеев, но для начала думаю достаточно.


Спасибо что прочитали эту статью, надеюсь вы смогли подчерпнуть с неё нечто новое.

Пишите свои крутые плагины, хоткеи, настройки, если сообществу понравится я обязательно добавлю их в статью.

Мой GitHub: https://github.com/Ryize

Комментарии (18)


  1. Andrey_Solomatin
    10.09.2022 10:12
    +2

    PyCharm относительно лёгкая

    У меня мощная машина, в общем я с вами согласен.

    String Manipulation

    Нажать рефакторинг и сделать руками выглядит быстрей.

    Python Smart Execute

    Чтобы выполнить файл и продолжить в консоли есть python -i, в пайчарме в настройках запуска есть галочка для этого. Запускается весь файл, а не его часть, но у меня небольшие функции и запускать кусок из них нет смысла.

    Rainbow Brackets

    Планин, чтобы было удобнее писать плохой код.

    Extra Icons

    Хотим облегчить процесс кодинга? Но как?


    Из хоткеев:

    ALT+ENTER quick fix.

    double tap on SHIFT (search everywhere), это найти класс, функцию, файл, PyCharm action в одном меню. 4 хоткея в одном.

    CTRL + RMB -> got to declaration/show usages (зависит от контекста где кликать).

    В меню Help > MyProductivity есть статистика, но мне она кажется странной.


    1. Infinitive1 Автор
      10.09.2022 10:55

      Благодарю за ваш комментарий, добавил ALT+ENTER (4 позиция), double tap on SHIFT (7 позиция).В основные настройки добавил Help -> MyProductivity (6 позиция).


  1. SiteCenter
    10.09.2022 11:52
    +2

    Более 5 лет использовал PhpStorm в качестве основной среды разработки.

    В этом году перешёл на Neovim - да, потратил порядка недели на его настройку, порог входа значительно выше, чем у Jetbrains, зато теперь:

    1. Проект запускается в десятки! раз быстрее;

    2. Настройки легко перенести на другое устройство;

    3. За счёт продуманного управления с клавиатуры процесс разработки стал гораздо, гораздо проще, ибо не то, чтобы до мышки, но даже до стрелочек на клавиатуре не нужно тянуться (в Jetbrains такого результата не добиться, проверял);

    4. Гораздо лучше обстоят дела с обновлениями (использую Fedora - и Jetbrains на линуксе работает ужасно, начиная от способа установки и включая способ обновления). До этого использовал Windows, до этого MacOS - Jetbrains на каждой из этих систем выглядит монструозно, избыточно монструозно, слишком перегруженно.

    5. Отсутствие обязательной ежемесячной/ежегодной подписки;

    В целом Neovim при грамотной (да, это сложно сделать) настройке на порядок быстрее и удобней, чем ide от Jetbrains. P.s: шрифты для Neovim использую от Jetbrains, ибо они выглядят превосходно =)


    1. t38c3j
      10.09.2022 12:29
      +1

      1. Не сказал бы что это критично, 10 секунд запуска или 1 секунда. Кто эти люди, которым приходиться каждую минуты открывать проекты, чтоб жаловаться на потраченное время?

      2. У JetBrains есть синхронизация настроек

      3. Тут увы, но это решается через некий костыль в виде кастомной раскладки с несколькими слоями если надо

      4. В чем заключается проблема с обновлениями? Использую тоже fedora и обновления в один клик ставятся через jetbrains toolbox. Монструозность можно кастрировать отключив не нужные плагины, возможности и т.д.

      5. Для разработчика если это его хлеб, заплатить за годовую лицензию всего пака как капля в море.

      Я не использовал Neovim, но погуглив некоторые сценарии использование показалось менее удобные инструменты дебаггинга, профайлинга, просмотр базы данных, просмотр и управление гитом... Хотя я понимаю что это дело привычки и принятия других концептов.


      1. select26
        10.09.2022 13:12
        -3

        Не читал но осуждаю?


      1. black_mou5e
        12.09.2022 15:35
        +1

        1. Любой инфраструктурщик/devops/sre/fullstack, у которых более 4 проектов на разных стеках, которые еще и зависят друг от друга :)

        2. Как человек который использовал 5 ide от jetbrains одновременно, могу сказать что тут все так просто. Настройки между ними не шарятся, и для каждой ide надо делать все в ручную. Про то что в одной ide плгин есть, а в другой просто нет - я уже молчу.

        3. Можно попробовать пользоваться IdeaVim, но это боль. (Как и любой vim-like плагин, где угодно кроме firefox)

        4. Toolbox в линухе конечно удобно, но мусорно. Все еще ставлю руками в /opt как старовер

        5. Тут спорить бесполезно, это факт. Кроме того, что не все имеют возможность это сделать (не финансово, а вы поняли о чем я).


    1. semenInRussia
      12.09.2022 20:47

      Плюсую, хоть Emacs по круче будет)


  1. nitrovatter
    10.09.2022 11:55

    Могу порекомендовать плагин, добавляющий колонку с превью кода, наподобие того что есть в Sublime Text.


    1. Infinitive1 Автор
      10.09.2022 11:57

      Добрый день, спасибо за ваш комментарий, подобное делает добавленный в статью плагин (14 позиция) - CodeGlance.
      Может вы заметили у названого вами плагина (Code Outline 2) какие-то преимущества?


  1. vconst
    10.09.2022 22:51
    -1

    Подпишусь, статья и каменты оч годные


  1. QuAzI
    11.09.2022 08:42

    Всё это лютые баяны, обсосанные сотни раз тут и на других площадках.

    А вы попробуйте DataGrip?! Вот уж где мастхев для DB затыкающий все среды от MSSQL до Navicat просто в лёт.

    Ну или хоть бы кто написал, что тот же Kotlin от JB теперь поддерживается в Jupyter Project. Да-да, тот самый который Jupyter Notebook для пайтона, который с кодом посреди документации и красивыми выхлопами туда же.

    JB вообще офигенны, если б у них ещё кроссплатформенная замена ShareX была и штук для разгребания логов заменяющий lnav/stern/multitail...


  1. wibotwi
    12.09.2022 07:19

    Translation

    Очень специфичный, многим вообще не нужен.

    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 в инете как грязи, включая ютуб ролики с выступлениями самих джетбреновцев. особенно умиляет что у вас нет маковских хоткеев.


    1. Infinitive1 Автор
      12.09.2022 16:02

      1) Это в первую очередь мой топ и моего окружения и мы пользуемся Translate, поэтому он включён.
      2) PyLint , MyPy,  SonarLint - по аналогии с первым пунктом, я и все мои коллеги пользуемся ими. Black используем через стороннюю библиотеку.

      3) Quick File Preview - я не видел подобную функциональность в PyCharm.

      4) String Manipulation- я не видел подобную функциональность в PyCharm.

      5) У меня есть проекты где куча вложенных вызовов, ничего с этим не сделать, так что Rainbow Brackets спасает.

      6) MultiHighlight - используется при мелких недоработках (пришла в голову идея, ты быстро написал кривенький код и неудобные моменты выделил, потом вернулся и сразу исправил)

      7)

      Как это может попасть в топ плагинов? это же сугобо индивидуальные свистелки перделки, не несущие функциональности

      Я изначально сказал, что это мой топ. Я добавляю свои прикольные плагины и хоткеи, которые нравятся мне и моим коллегам.

      8)

      Удивлён что нет в списке плагина BrowseWordAtCaret

      Я не пользуюсь этим плагином, поэтому его нет в топе, если люди напишут, что они его часто используют, то добавлю.


      1. 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


  1. Infinitive1 Автор
    12.09.2022 17:19

    Все изначальные плагины, которые были в статье были взяты с моего опыта. Я не добавлял плагины которыми не пользовался лично (фраза: это мой топ именно об этом).

    Но сейчас, когда статья уже вышла, я добавляю все плагины о которых пишут в комментариях (если, конечно, подобные плагины оценивают другие пользователи хабра).

    https://www.jetbrains.com/help/idea/2020.3/using-code-editor.html#preview-tab

    Я про это не знал, благодарю за замечание, указал в статье разъяснение


  1. wibotwi
    12.09.2022 17:37

    Вот еще парочка полезных плагинов.

    RainbowCSV

    Раскрашивает каждую колонку в свой цвет в csv файлах. Иногда бывает надо подправить одну строчку, или посмотреть одно значение, и очень неудобно считать номер столбика вручную по запятым.

    Line Sorter

    Сортирует выделенные строчки. Так же как и BrowseWordAtCaret я не понимаю почему Jetbrains не реализует это в самой ide. Это же такие простые вещи, которые всегда нужны.


  1. pomponchik
    12.09.2022 20:34

    А есть что-то похожее на tabnine, но чтобы бесплатно?


  1. grieverrr
    13.09.2022 00:39

    перепись ненужных свистелок и перделок