首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
V2EX  ›  Python

Python 代码如何加入 hard warp?

  •  
  •   oIMOo · 193 天前 · 1592 次点击
    这是一个创建于 193 天前的主题,其中的信息可能已经有所发展或是发生改变。

    soft warp = 软行换。也就是只是显示的时候换行了而已,并不将换行保存到文件中。

    hard warp = 硬换行。一次换,终生换,在哪里打开、用什么打开都是那里换。


    平常用 Atom 写 C,使用 atom-beautify package 在保存的时候,都会在 length-weigth = 80 处换行。

    现在想让 python 代码也在页宽为 80 的地方换行 (加 \ 并换行),同样使用 atom-beautify package, 测试了 autopep8 和 yapf 都没有这个功能。

    Atom 自带的也只有 soft warp。

    Sublime 改了 user setting, 同样是 soft warp。

    google 一圈,没人有同样的强迫症,特来求助......

    24 回复  |  直到 2018-03-14 09:58:10 +08:00
        1
    oIMOo   193 天前
    autopep8 --in-place --aggressive --aggressive <file_name> 也木有蛋蛋用。
        2
    tangyouze   193 天前   ♥ 1
    80 行的标准 实在是爱不动 intellij 似乎是在某些地方 自动加 \ 并换行的
    我个人的喜好一般是超过 120 就重构代码 让他不超过 120 列 (加\并且换行感觉真的好丑-,-)
        3
    oIMOo   193 天前
    @tangyouze

    刚刚想起我有学生版 PyCharm,是了一下居然可以,开心爆了。

    不过在我的小破电脑上软件加载起来有点慢......

    所以还是想有什么办法让 atom 实现。

    而且毕竟学生包一年后就到期了......
        4
    qweer29   193 天前 via Android
    @oIMOo 如果仍然有学生邮箱的话,Pycharm 可以继续申请激活的。
        5
    oIMOo   193 天前
    @qweer29

    毕业之后就会被注销了......

    如果有用 atom python coder,欢迎指出到底应该怎么办......

    我现在无比尴尬的用 atom 写,然后用 PyCharm 去换行......
        6
    xmoiduts   193 天前 via Android
    vscode 全选 格式化选中代码 美滋滋
    *虽然原理不明,可能就是 autopep8,但是换行确实写入了文件。对应的“软换行”是“查看”-“切换(呈现)自动换行”。
        7
    oIMOo   193 天前
    @xmoiduts

    你是来炫耀的……
        8
    congeec   193 天前   ♥ 1
    wrap
        9
    feloxx   193 天前 via Android
    老哥,pycharm 怎么弄成软换行呀
        10
    JsonLee   193 天前 via iPhone
    都是手动硬换的说
        11
    oIMOo   193 天前 via iPhone
    @congeec

    具体如何呢?

    排除手动回车的方法……
        12
    congeec   193 天前
    @oIMOo
    vim -> :h formatexpr
    PyCharm 社区版完全够用,免费
        13
    snowolfy   193 天前
    emmm...是 wrap 而非 warp...
        14
    glasslion   193 天前
    用 \ 换行本来就是被社区抵制的风格 , autopep8 和 yapf 当然不可能这么干。 现在都是用括号焕发哪个的
        15
    ipwx   193 天前
    人工换行比较好,自动换行有时候特别傻。
        16
    oIMOo   192 天前 via iPhone
    @snowolfy

    你不说我还没注意,一直觉得用的是 warp 弯曲之类的意思……

    谢谢指出。
        17
    oIMOo   192 天前 via iPhone
    @congeec 谢谢谢谢,之前一直以为弯曲拿个单词……
        18
    oIMOo   192 天前 via iPhone
    @feloxx 我的是硬来的硬换行,哈哈。
        19
    oIMOo   192 天前 via iPhone
    @glasslion 最后用括号焕发是什么意思啊?
        20
    oIMOo   192 天前 via iPhone
    @ipwx 主要是用自动换行学习姿势,毕竟看到把 [ 留在上一行,后面另起一行,这种事我无论如何也做不到……
        21
    snowolfy   192 天前
    @oIMOo
    类似这种么?
    ```
    foo = [
    'a',
    'b',
    'c'
    ]
    ```

    我觉得我更喜欢这种风格。而且好像看到的也多是这种风格。
    估计看个人风格吧。我要求我这边的都不允许出现 `\` 来换行的。
        22
    glasslion   192 天前
    @oIMOo 打错了, 焕发 -> 换行

    https://www.python.org/dev/peps/pep-0008/


    The preferred way of wrapping long lines is by **using Python's implied line continuation inside parentheses, brackets and braces**. Long lines can be broken over multiple lines by wrapping expressions in parentheses. **These should be used in preference to using a backslash for line continuation.**

    income = (gross_wages
    + taxable_interest
    + (dividends - qualified_dividends)
    - ira_deduction
    - student_loan_interest)

    Google Python Style Guide:
    https://google.github.io/styleguide/pyguide.html?showone=Line_length#Line_length

    Do not use backslash line continuation.
    Make use of Python's implicit line joining inside parentheses, brackets and braces. If necessary, you can add an extra pair of parentheses around an expression.
        23
    oIMOo   192 天前
    @snowolfy

    类似于:

    ...split("overable'>")[

    -1].split("blahblah...
        24
    oIMOo   192 天前
    @glasslion

    我就是想遵照这个标准,本来想着从自动换行开始,一方面省事,一方面掌握规律。

    我的 atom 貌似可以换行了,不过是正在输入中的代码,而不能对已有的代码文件进行换行处理。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1753 人在线   最高记录 3762   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 19ms · UTC 09:52 · PVG 17:52 · LAX 02:52 · JFK 05:52
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1