在 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 中用换行符包装注释的主要内容,如果未能解决你的问题,请参考以下文章