17

У меня есть комментарии, которые получают воздушный шар (PEP 8: Line too long ... > 120) Желаю, чтобы была команда, которая будет обертывать линии несколькими нажатиями клавиш. Прямо сейчас, даже если я набираю Alt + Enter и нажмите введите на Reformat file, ничего не меняется. Есть ли настройка или плагин, который я мог бы использовать для упрощения форматирования?Обводка комментариев с разрывами строк в PyCharm

ответ

10

Во-первых, переформатирование не будет работать, по крайней мере, в Python, где важны пробелы. Параметр «Wrap when typing reach right margin» от PyCharm - это то, что вы ищете. Теперь это не сработает, когда вы копируете и вставляете код, но в тех местах, где это создает проблемы, просто нажмите enter, и он будет работать.

Screenshot of where to turn on PyCharm "Wrap when typing reaches right margin" option

+1

Хотел бы я щелкнуть по этому изображению, чтобы оно стало больше. –

+1

@MattFaus Щелкните правой кнопкой мыши по изображению и откройте в новой вкладке. –

+1

Комментарии и docstrings - это два места, где пробелы не важны. Было бы неплохо, если бы PyCharm мог неплохо их обернуть. (Он может выполнять основную работу ...) – Mike

7

Чтобы иметь возможность авто-переформатировать комментарии (и код, по этому вопросу), чтобы выполнить правое поле после того, как тот факт, перейдите в настройки проекта под Code Style, а затем далее по Python. Перейдите на вкладку «Обертка и привязки» и установите флажок «Обеспечить, чтобы правое поле не превышалось».

Теперь, если вы выберете область линий, а затем запустите команду Code/Reformat Code ..., PyCharm сделает все возможное, чтобы обернуть комментарии или код соответствующим образом.

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

PyCharm не будет переформатировать код таким образом, чтобы он стал недействительным Python, поэтому иногда он будет оставлять строку длиннее поля (120 или любого другого, что вы установили в разделе «Настройки проекта/Стиль кода/Общие»).

enter image description here

22

В меню Edit имеется Fill Paragraph вариант, который делает то, что я верю, что вы хотите. Вы можете назначить ему команду ключа в Preferences, под номером Appearance & Behavior ->Keymap (поиск «заполнить»).

Лично я выбираю первый инсульт Esc, второй обводки Q, потому что это то, что я всегда в Emacs ...

+2

Это на самом деле именно то, что я искал, и, вероятно, именно то, что ищет OP. В принятом ответе не учитывается тот факт, что OP искал autowrap _comments_, где пробелы обычно не важны (кроме ручной новой строки здесь и там). – Fred

+1

По какой-либо причине «fill paragraph» не работает, если выбран какой-либо текст. Курсор должен быть только где-то в абзаце. –

+0

@StevenVascellaro Похоже, вы должны [сообщать о проблемах авторам] (https://www.jetbrains.com/help/pycharm/reporting-issues-and-sharing-your-feedback.html#d197357e69). Опубликовать комментарий здесь вряд ли будет полезно для всех. – Mike

1

Обновлено Ответ: Используйте «мягкие обручи.» Вы можете найти его в панели справки.

View> Active Editor> Используйте мягкие палантины

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

1

С недавнего PyCharm это сейчас находится в "Редактор -> Code Style", с флажком под названием "Wrap о вводе" enter image description here

Скриншот показывает PyCharm версию 2016.2.1 Professional.

Смежные вопросы