V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
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
Richard14
V2EX  ›  Python

用 VS Code 和 Sublime Text 写 Python 哪个更合适?

  •  
  •   Richard14 · 2022-04-23 11:03:29 +08:00 · 9545 次点击
    这是一个创建于 946 天前的主题,其中的信息可能已经有所发展或是发生改变。

    两个都用过,但感觉都有一些小痛点。

    泛用性更强的肯定是 vscode 了,功能毫无疑问的更强大,但是个人使用感觉的缺点:

    1. 解释器需要配置,不能开箱即用
    2. 执行速度相对来说慢一丢丢,不太清楚为什么会这样,每次 build 要等个一两秒,与 sublime 的 0.2 秒闪电出结果体验上差很多
    3. 自动补全功能感觉没有 sublime 强大,像后者如果我定义一个变量my_name_is_richard,其他地方引用这个变量,输入其中几乎任意字母组合都能瞬间补出来,比如mnir回车,或者nr回车,甚至ad回车也能补出来,vscode 里补全总感觉比较玄学,有时候补得很快,有时候不知道为什么补不出来。

    Sublime Text 的缺点在于:

    1. 泛用性差,插件生态和 vscode 差一个量级。
    2. 自动补全非常强,但智能提示非常拉胯,期待的使用体验是,输入一个未知对象,按.直接可以查看内部属性和方法,sublime 默认配置下无插件那就是啥也提示不出来,插件我不知道怎么配才能做到。

    当然了 sublime 的优点是快如闪电。。更多时候当做系统默认文本编辑器的替代品也是很不错的。

    当然写 py 还有 jb 家的 pycharm 比这两个都更主流,功能也更强大,但是我不常用的原因还是个人不喜欢大而全但是慢的软件,我更喜欢 ctrl+n 直接能创建新文件开始写代码,写完 ctrl+b 直接就能看到执行结果那种的爽快感。

    所以有无老哥分享一下 vscode 和 sublime 写 python 的配置教程,在执行速度、智能提示、自动补全方面应该怎么配才能写代码比较舒服?我相信这几款 ide 配好了应该都是相当好用的,也许我们可以汇总一下搞个经验分享贴

    49 条回复    2022-04-26 02:31:04 +08:00
    cpf
        1
    cpf  
       2022-04-23 11:10:24 +08:00
    我用 vscode 写 py 主要是写一些小的程序,不是啥项目,直接下个 code runner 就直接运行了,但是不知道是不是我配置的原因,我写 py 的时候老是给我用 tab 缩进,然后就给我报红波浪线,每次都要右下角自己改成用空格替换,烦死了
    duanguyuan
        2
    duanguyuan  
       2022-04-23 11:10:25 +08:00   ❤️ 1
    目前混用 vscode 和 pycharm 。关于 vscode 有个问题想请教一下:python built-in 的库,方法跳转过去,仅仅显示方法签名,没有注释没有方法体,这个怎么破?比如点击`os.system()`:
    ```
    def system(command: StrOrBytesPath) -> int: ...
    ```
    我翻了 vscode 几年前的 issue ,vscode 开发者说这是 pylance 插件的问题。问题是这么多年过去了,怎么还是这个样子。难以理解。
    GTim
        3
    GTim  
       2022-04-23 11:11:06 +08:00
    SB 比 VSC 另一个强大的点就是对所有临时打开的文件可查询,这点非常有用
    jjx
        4
    jjx  
       2022-04-23 11:14:23 +08:00
    性能优势不重要

    老老实实用 vs code 好了

    我的项目 1400 多个文件 14 万行以上的代码

    vs code 在 intel m3 到 m1 上都正常, 没有感觉到明显的性能拉垮
    butanediol2d
        5
    butanediol2d  
       2022-04-23 11:34:37 +08:00
    补全的话用 lsp 就可以了,不论 vscode 还是 sublime text 都是一样的。
    haha512
        6
    haha512  
       2022-04-23 13:04:29 +08:00
    sublime 的优点就是打开飞快+颜值极高

    至于补全什么的,vscode+Python Extension Pack+github copilot 爽的不要不要的
    SenLief
        7
    SenLief  
       2022-04-23 13:16:58 +08:00
    vscode wsl2 中无法补全的嘛?
    hronro
        8
    hronro  
       2022-04-23 13:44:22 +08:00   ❤️ 2
    Sublime Text 可以上 LSP 来获得和 VS Code 「完全一致」的智能补全体验:

    https://github.com/sublimelsp/LSP
    https://github.com/sublimelsp/LSP-pyright
    HITMengbin
        9
    HITMengbin  
       2022-04-23 14:47:29 +08:00
    @duanguyuan 这个问题神烦,目前也没找到啥好的方式解决
    stimw
        10
    stimw  
       2022-04-23 15:21:57 +08:00
    @hronro #8 并不准确。目前 pyright 是为 pylance 服务,体验上别说完全一致,甚至应该差距挺大。
    stimw
        11
    stimw  
       2022-04-23 15:24:55 +08:00
    vscode 可以用 pylance ,可以用 copilot 。。至少可以在提示、重构和补全上完全超越 Sublime Text 。
    sublime 甚至还不如 neovim 。。至少 neovim 可以用 copilot
    cmdOptionKana
        12
    cmdOptionKana  
       2022-04-23 15:37:43 +08:00   ❤️ 2
    Sublime Text 真的可惜了,明明起步早,生态建设也早,颜值高性能好,现在反而有种落伍的感觉。
    victorfish
        13
    victorfish  
       2022-04-23 16:00:50 +08:00
    有个问题 vscode 上库函数是不是缺得很严重,我拿了两串代码,全显示某某函数未定义。。。。
    darksword21
        14
    darksword21  
       2022-04-23 16:02:16 +08:00 via iPhone
    你因该了解下 sublime 和
    code 底层使用什么技术,补全都有哪些方案,他们的区别和效果,你上面说的东西自然就不是问题了
    beginor
        15
    beginor  
       2022-04-23 16:43:14 +08:00 via Android
    pycharm 才是最好的
    Richard14
        16
    Richard14  
    OP
       2022-04-23 16:47:36 +08:00
    @hronro 试了试装了这两个,默认的类型提示必须严格保证怎么关啊,有些时候是提示给人看的,懒得标那么细,搞一大堆红色波浪线出来
    milkpuff
        17
    milkpuff  
       2022-04-23 16:50:35 +08:00
    @GTim 雀食。sublime 随便拖进来一个文件就能有代码提示。
    补全用 lsp 。anaconda 插件的 github 中也推荐了 lsp 。
    wangkun025
        18
    wangkun025  
       2022-04-23 16:58:18 +08:00
    一直用 Sublime text 。尝试了很多次 vscode ,都适应不了。
    kongkongyzt
        19
    kongkongyzt  
       2022-04-23 19:25:33 +08:00
    我用的 Pycharm, sublime 纯当作我 manjaro 桌面的默认文本编辑器了
    zhuangzhuang1988
        20
    zhuangzhuang1988  
       2022-04-23 21:51:24 +08:00
    为何不试试 pycharm 呢。
    brucmao
        21
    brucmao  
       2022-04-23 23:54:45 +08:00 via iPhone
    jfcherng
        22
    jfcherng  
       2022-04-24 00:57:53 +08:00   ❤️ 1
    @Richard14 #16 Hmm... settings 沒有很長,看下應該就能猜出來

    "python.analysis.typeCheckingMode": "off",
    jfcherng
        23
    jfcherng  
       2022-04-24 01:00:36 +08:00
    另一個可能性是修改下面的設定

    // Allows a user to override the severity levels for individual diagnostics.
    // @see https://github.com/microsoft/pyright/blob/master/docs/configuration.md#type-check-diagnostics-settings
    "python.analysis.diagnosticSeverityOverrides": {
    "reportDuplicateImport": "warning",
    "reportImplicitStringConcatenation": "warning",
    "reportMissingParameterType": "none",
    "reportImportCycles": "warning",
    "reportUnboundVariable": "warning",
    "reportUninitializedInstanceVariable": "none",
    "reportUnusedClass": "information",
    "reportUnusedFunction": "information",
    "reportUnusedImport": "information",
    "reportUnusedVariable": "information",
    },

    不過這能改的東西就很多了,可以自己去連結裡查閱,我就沒有全部列在 settings 裡了,只在 default settings 寫了比較常用的幾個。
    jfcherng
        24
    jfcherng  
       2022-04-24 01:05:20 +08:00
    私底下我偷用 pylance , 不過在 ST 上差距不大,intellicode 沒法用, extract variable/method 在早期的時候能用,後來該功能的實作好像被移到另一個插件了(懷疑是在 ms-python.python 裡),就沒法用了。優點只剩下 semantic highlighting, 自帶某些 stubs, 和函數補全可以自動加上括號。
    neoblackcap
        25
    neoblackcap  
       2022-04-24 03:04:48 +08:00   ❤️ 1
    sublime text 卖 99USD ,这有啥可比性?
    就连功能强悍的 PyCharm 也是卖 89USD ,单纯考虑使用舒适性。上 PyCharm ,不管是智能感应还是重构等编辑功能都非常厉害。
    如果要考虑钱,那么 VScode 是无敌的。目前免费的综合使用就没有比它强。
    cassyfar
        26
    cassyfar  
       2022-04-24 04:10:21 +08:00
    Sublime 不是免费的。然后他非常贵(当然你一直不买许可,甚至还写工作代码,那我也没啥好说的

    要不然也不可能被 vscode 这么快速替代。
    LeeReamond
        27
    LeeReamond  
       2022-04-24 05:33:24 +08:00
    @cassyfar 草。。我就是一直不买许可甚至还写工作代码的,犯忌讳了吗
    cassyfar
        28
    cassyfar  
       2022-04-24 08:31:31 +08:00
    @LeeReamond 理论上是免费试用,但是没有强制的试用期。
    fyxtc
        29
    fyxtc  
       2022-04-24 09:09:30 +08:00
    @GTim SB 的搜索功能比 VSC 体验好太多了,还有 VSC 的 VI 插件和原生的功能有很多冲突,比如命令模式下,cmd+d 多选相同词 abc ,然后按 i 进入插入模式,你能想到多个词插入的位置能不一样吗,有的光标的 abc 的前面,有的在后面,每次用到这功能我都快吐了。我 6 年前就发现这个 bug ,最近重新用 vsc 还是有这个 bug..... 另外 vsc 如果使用 vi 的 v 模式下使用 jk 扩展选中的行,然后按 x 删除经常删不完整,然后我每次只能算行 dd 或者使用光标去选。还有就是 vsc 的粘贴功能也经常让我意外。

    上面的问题 sub 全部没有,体验顺滑,但是 vsc 提示和方法跳转比 sub 智能,以及终端方便。
    HUAXIA
        30
    HUAXIA  
       2022-04-24 09:12:33 +08:00
    一般项目 VSCode ,大项目 pycharm 。Sublime 不考虑
    GTim
        31
    GTim  
       2022-04-24 09:15:27 +08:00
    @fyxtc VSC 强大就强大在智能提示,不过 SB 也能做到,就是配置太复杂了
    retrocode
        32
    retrocode  
       2022-04-24 09:19:54 +08:00
    基本上 脚本我都是 sublime 写的, 随用拖进 sublime 改完就丢, 一般项目就上 vscode 了,对项目的各种配置文件更友好
    hronro
        33
    hronro  
       2022-04-24 09:38:58 +08:00 via iPhone
    @cassyfar #28 试用期间不能用于商业用途,换句话说就是试用期间不能写工作上的代码
    raptor
        34
    raptor  
       2022-04-24 09:42:15 +08:00
    要功能全面用 pycharm ,方便快捷用 vim……
    mogging
        35
    mogging  
       2022-04-24 10:27:27 +08:00
    习惯用 vscode ssh 远程在 linux 下做 debug 就不想再尝试别的了,vscode 唯一不方便的地方就是迁移困难,换机器要重新来一遍,有 portable 的就好了
    roundgis
        36
    roundgis  
       2022-04-24 10:35:32 +08:00 via Android
    寫大一點的用 pycharm

    簡單的 vim
    CY4suncheng
        37
    CY4suncheng  
       2022-04-24 12:09:48 +08:00
    我觉得 pycharm 最合适。。
    coreki
        38
    coreki  
       2022-04-24 12:22:23 +08:00
    sb 用不来,我用 pycharm ,sb 只是当记事本
    Huelse
        39
    Huelse  
       2022-04-24 12:52:58 +08:00
    早期 sb 不支持中文,还不能改字符集,直接弃坑
    swsh007
        40
    swsh007  
       2022-04-24 13:33:47 +08:00 via Android
    pycharm 最强
    sublime 启动最快
    cz5424
        41
    cz5424  
       2022-04-24 13:38:33 +08:00 via iPhone
    用 pycharm ,sublime 落伍了
    iyaozhen
        42
    iyaozhen  
       2022-04-24 13:47:20 +08:00   ❤️ 3
    pycharm 吧
    有人说打开快慢,你为什么要关闭它呢(逃
    lookStupiToForce
        43
    lookStupiToForce  
       2022-04-24 14:18:15 +08:00   ❤️ 1
    推荐还是 VS CODE 或者 jetbrains 的 Pycharm

    sublime 真的可惜,作为一个 win+mac+linux 三地原生的文本编辑器(应该不是 webview 套壳),其本身的优质体验却因为社区生态建设没起来落后了,导致用户越来越少,很多 package 的作者也转移阵地去其他编辑器 /IDE 上开发了,sublime 的众多好用插件都陷入年久失修或者烂尾状态。

    然后 sublime 社区落后的原因,很可能跟它官方压根就没想做好开发者社区,没当 package 生态建设是一回事,甚至就是有意打压社区建设,这些因素有关。

    像我最近也想自己写些 sublime 的包自己先用用看,结果找文档找到官方的 package development doc ,是只有一页 html 的残缺品你敢信?简直是要啥没啥!它官方好像生怕别人通过 package 文档应该有的各种 api 逆向出来功能实现一样!
    甚至在它官方文档开头,就写着你要想看到更多内容,就请去参看非官方文档,就差把直接开摆写在脸上了。

    我就想开发一个它的包,只调用一些 sublime 基础的 view 、window 的功能,还得自己搜索各种社区非官文档、博客教程、so 问答,这跟 vscode 官方有手把手教你做插件的教程形成天壤之别。

    官方的具体骚操作中,像 run command 的 command 名称的设定,sublime 居然是用的约定(官方文档没有任何地方写过这个),而不是你给 command 名赋值。它默认就用你设置的 class 名称(还必须是大驼峰写法,且不能有连续的大写字母,比如"OK")解析成带下划线的 command 名。
    这尼玛这么基础的 run command 功能的 command 名称设置,你官方文档居然都只字未提,这让想入门的开发者从哪儿琢磨起啊!!!真就当社区文档、社区问答是你的牌面啊!我最开始知道这个被恶心了一下午,真实瞬间就不想给 sublime 写脚本了。你官方都摆烂,还指望其他开发者给你扶正了?
    janxin
        44
    janxin  
       2022-04-24 14:42:37 +08:00
    微软的那个 pylance 真的挺强的...
    ebingtel
        45
    ebingtel  
       2022-04-24 15:01:52 +08:00
    vim 配置一下,写脚本更好用
    610915518
        46
    610915518  
       2022-04-24 20:10:55 +08:00
    vscode 路过。像我这种一会儿写 python 一会儿写别的的,能在一个软件里解决就坚决不下多个软件。

    另外登录账号就能配置同步,不同项目可以在 .vscode 文件夹进行各种独特的配置,我太喜欢这种了,感觉开源都很方便,extension recommend 一贴,设置文件一放,其他人直接可以按我设置的代码风格进行编写和提交
    281x1h2ez12
        47
    281x1h2ez12  
       2022-04-26 02:25:17 +08:00
    PyCharm 。原因是有 debugger ,deployment 也挺方便的,没啥毛病,对我来说够用了。
    281x1h2ez12
        48
    281x1h2ez12  
       2022-04-26 02:29:04 +08:00
    多说几句。N 年前在学校的时候,周围都流行 sublime ,甚至教授讲课都开 sublime 现场演示写 Java 。当时 debug 代买的化,写 C++流行 visual studio 、xcode ,写 Java 流行 Eclipse ,Python 本身还不咋流行。后来慢慢不写 C++、Java ,只写 Python 了。大概 17 年左右发现的 PyCharm 这款 IDE ,从此就没离开过。
    281x1h2ez12
        49
    281x1h2ez12  
       2022-04-26 02:31:04 +08:00
    当年写 C++还流行直接用 vim ,感觉高端的大牛都鼓吹 vim 。但不知从哪年开始,周围的同事同学都 PyCharm 了,后来的新人没见过用 vim 的。可能是工作环境变了,原先爱用 vim 的人转去了别的地方,依然用着他们喜欢的工具。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3581 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 00:56 · PVG 08:56 · LAX 16:56 · JFK 19:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.