在 PyCharm 中用换行符包装注释

Posted

技术标签:

【中文标题】在 PyCharm 中用换行符包装注释【英文标题】:Wrapping comments with line breaks in PyCharm 【发布时间】:2013-06-16 07:37:51 【问题描述】:

我有获得气球的 cmets (PEP 8: Line too long ... > 120) 我希望有一个命令可以用很少的按键来换行。 现在,即使我在Reformat file 上键入 Alt+Enter 并按 enter,实际上也没有任何变化。有没有可以用来轻松完成格式化的设置或插件?

【问题讨论】:

【参考方案1】:

首先,重新格式化是行不通的,至少在 Python 中不行,因为空格很重要。 PyCharm 的“输入到右边距时换行”选项就是您要找的。现在复制粘贴代码就不行了,但是在给你麻烦的地方直接回车就行了。

【讨论】:

注释和文档字符串是空格不重要的两个地方。如果 PyCharm 能够很好地包装它们,那就太好了。 (它可以完成基本的工作......)【参考方案2】:

为了能够在事后自动重新格式化 cmets(和代码)以兑现右边距,请进入代码样式下的项目设置,然后再进入 Python 下。单击 Wrapping and Braces 选项卡,并选中“确保不超过右边距”复选框。

现在,如果您选择一个区域的行,然后运行 ​​Code/Reformat Code... 命令,PyCharm 将尽最大努力适当地包装 cmets 或代码。

您可能需要对结果进行一些调整以适应您的风格品味。例如,我希望 PyCharm 能够在块 cmets 中积极填充文本,至少是可选的。

PyCharm 不会重新格式化代码以使其成为无效的 Python,因此有时它仍会留下比边距更长的行(120 或您在项目设置/代码样式/常规下设置的任何值)。

【讨论】:

【参考方案3】:

Edit 菜单下,有一个Fill Paragraph 选项,我相信它可以满足您的需求。您可以在Preferences 中的Appearance & Behavior -> Keymap 下为此分配一个键盘命令(搜索“填充”)。

就个人而言,我选择第一笔 Esc,第二笔 Q,因为这是我在 Emacs 中一直使用的...

【讨论】:

这实际上正是我所寻找的,也可能正是 OP 所寻找的。接受的答案没有考虑到 OP 正在寻找自动包装 cmets 的事实,其中空格通常不重要(除了手动换行符)。 由于某种原因,如果选择了任何文本,“填充段落”将不起作用。光标必须刚好在段落中的某处。 @StevenVascellaro 听起来你应该report an issue to the authors。在这里发表评论不太可能对任何人都有帮助。 也就是说,您也可以尝试在您的文档字符串之前的行中添加# language=rst prefix=" " 这会破坏使用 reStructuredText 构建的文档字符串。 (PY-28838)【参考方案4】:

更新的答案: 使用“软包装”。您可以在帮助栏中搜索。

查看 > 活动编辑器 > 使用软包装

它不适用于现有文本或复制的文本,但适用于任何新键入的文本。

【讨论】:

【参考方案5】:

对于最近的 PyCharm,它现在位于“编辑器 -> 代码样式”,带有名为“键入时换行”的复选框

屏幕截图显示 PyCharm 版本 2016.2.1 Professional。

【讨论】:

2020年依然如此。

以上是关于在 PyCharm 中用换行符包装注释的主要内容,如果未能解决你的问题,请参考以下文章

在 awk 中用换行符替换“\n”

在 PHP 中用一个空格替换多个空格和换行符

如何在 Java 中用逗号和换行符 (\n) 分割字符串? [复制]

如何在 Vim 中用换行符替换字符

如何在 Emacs 中用换行符替换字符?

在pycharm中为函数或方法以及参数添加注释