V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
symons
V2EX  ›  程序员

讨论帖, IDE 相较于 vim 有哪些优势

  •  
  •   symons ·
    symons1992 · 2017-09-14 14:59:38 +08:00 · 15815 次点击
    这是一个创建于 2387 天前的主题,其中的信息可能已经有所发展或是发生改变。

    讨论帖子,非引战贴,个人认为 IDE 学习成本太高。所以想了解下,各位朋友,IDE 有哪些很吸引你们的功能?

    155 条回复    2023-06-05 15:01:15 +08:00
    1  2  
    clino
        101
    clino  
       2017-09-15 10:05:26 +08:00
    能干活就行了...达到目的最重要
    ---
    其实我是来翻页的
    CtrlSpace
        102
    CtrlSpace  
       2017-09-15 10:05:42 +08:00
    恕我直言,公司近百个程序员,没见过谁用 vim 写代码?
    你们是活在 20 年前???
    fy
        103
    fy  
       2017-09-15 10:10:23 +08:00
    @symons

    拿 Python 来说:
    1. 很大一个好处就是点点点就行啊,不用背快捷键就用的很 High。另一个是环境一致,你去同事那临时帮忙体验基本相同。

    2. 按住 ctrl 直接点各种类、变量跳到其定义(当然 vim 也基本能实现这个)

    3. 绝大部分 warning,直接光标停上去 alt + enter,给出修复建议,包括但不限于拼写错误、PEP8、docstring 少写参数、类型不匹配、自动转 static/classmethod、父类 NotImplementError(典型场景虚基类) 等等。

    4. 完善的类型推导,目前看来除了对 3.6 的部分新 TypeHint 资瓷还有问题之外,其余情况的推导近乎完美,极大提升效率。

    5. refactor 重构功能:文件、类改名自动帮忙改所有引用项,删除的时候还有引用检查帮你去引用。现在看来我当年 vim 开发,重构时候切到 shell 用 ack-grep 一个一个改堪称刀耕火种。

    6. 图形界面确实是好用啊!用不常用功能的时候成本低了太多,常用功能可以和终端一样配置快捷键啊。

    7. 说出来你可能不信,jedi、ycm 什么的比 PyCharm 卡顿多了……
    Hanggi
        104
    Hanggi  
       2017-09-15 10:12:44 +08:00
    有鼠标
    bumz
        105
    bumz  
       2017-09-15 10:15:53 +08:00
    @hellohello123 #74 IDE 和文本编辑器是不同的东西。IDE 不一定是文本编辑器。所以也不存在 IDE 是文本编辑器的超集的问题。

    虽然多数 IDE 都带有部分文本编辑器的功能,但是相比专业的文本编辑器,其功能还是太弱。我举的例子只是一个最基本的例子

    Sublime Text 的文本编辑功能强大到,我可以直接用它来做一次性的数据预处理

    IDE 行吗?

    而 Vim 是丝毫不逊色与 Sublime Text 的。
    Joyreece
        106
    Joyreece  
       2017-09-15 10:17:07 +08:00
    IDE 的最大优势就是各种工具整合在一起,一定程度是“开箱即用”,上手快相对方便,学习成本相对低;
    vim 的最大特点是体积非常小没有 GUI,在连接远程服务器的时候简单的改改配置文件什么的 vim 就比 IDE 方便太多了;
    xlui
        107
    xlui  
       2017-09-15 10:23:13 +08:00 via Android   ❤️ 2
    @Joyreece #106 服务器:IDE ?不存在的!
    quinoa42
        108
    quinoa42  
       2017-09-15 10:25:41 +08:00
    Vim 除了不能 DEBUG 之外,大多数的 IDE 功能都可以通过插件实现

    @ipwx

    使用了 deoplete+jedi

    至于前面有人提到的语法检查,建议试试 Ale
    至少在写 python 的时候,(neo)vim+(pt)ipython 的组合没让我感到有多么不便
    Joyreece
        109
    Joyreece  
       2017-09-15 11:02:59 +08:00
    @xlui 这个确实, 尤其是海外的服务器, 那感人的延迟特蛋疼
    Norie
        110
    Norie  
       2017-09-15 11:07:05 +08:00
    一个效率,一个情怀
    Technetiumer
        111
    Technetiumer  
       2017-09-15 11:10:42 +08:00
    我使用 Emacs 操作系统!然后在 Emacs 操作系统中安装了 Spacemacs 这个 vim,并且使用混合模式,同时用 Emacs 和 vim 两种键位

    另外 Atom-IDE 算 IDE 还是编辑器
    markmx
        112
    markmx  
       2017-09-15 11:11:32 +08:00
    有时候 玩个 IDE 都能玩一天.
    还不如那个简单的编辑器 用就好了.
    falcon05
        113
    falcon05  
       2017-09-15 11:12:15 +08:00 via iPhone
    @xlui 我知道啊,就是太麻烦了
    NoAnyLove
        114
    NoAnyLove  
       2017-09-15 11:13:21 +08:00
    @fy PyCharm 运行速度和 Android Studio 相比如何?两者都是 JetBrains 家的产品。PyCharm 功能强大我承认,但是比 jedi 和 YCM 卡我真不信。NCM+Jedi 路过
    xingzhi1990
        115
    xingzhi1990  
       2017-09-15 11:17:55 +08:00
    @NoAnyLove 我装 VS2017 除了 Linux 和游戏之外的都全部安装, Android Studio 相比 VS 更吃内存。不过我的配置比较足,16G 内存,3T 机械硬盘,500G SSD。做的项目光编译就近一个小时,还要装分布式编译的工具~
    billwang
        116
    billwang  
       2017-09-15 11:18:53 +08:00
    感觉 vim 就和当年的五笔一样,快速但是学习成本高一些。不过现在大部分人都开始用拼音了不是吗?
    fy
        117
    fy  
       2017-09-15 11:35:04 +08:00
    @NoAnyLove 这不清楚 我没认真用过 AS。你是应该想说 pycharm 比 jedi ycm 卡吧?描述正好反了。

    不过这东西应该比较主观,我没做过精确的测试。但 ycm 给我的主要印象就是难配和超卡,反正既然 PyCharm 开箱即用的话,你不妨试一下呗?
    chn9207
        118
    chn9207  
       2017-09-15 11:45:58 +08:00
    第一次听说 IDE 学习成本高。。。
    582033
        119
    582033  
       2017-09-15 11:46:37 +08:00 via Android
    @bigzhu 上了年纪,看见这种月经 /日经的,拿各种东西跟我大 vim 对比的帖子,真的提不起兴趣来撕了。

    你走你的阳关道,我走我的独木桥。
    NoAnyLove
        120
    NoAnyLove  
       2017-09-15 11:46:39 +08:00
    @fy Python 的 IDE 一直用的 PyDev,相比之下比 Android Studio 快了不止一个数量级,特别是启动的时候。嗯,描述错了,想说的是“ jedi 和 YCM 比 PyCharm 卡我真不信”。

    YCM 的配置确实不太友好,特别是 Windows 下太麻烦了,要下载 MSVC,既然 MSVC 都下载了我干嘛不直接用。Linux 下还好,如果只用支持 Python,基本上都能简单编译通过。如果用 NeoVim 的话推荐用 NCM+Jedi,不用编译,使用很流畅,对 Windows 的支持也不错,内存占用也很少( Windows 下算上 GUI 和各个 Python 子进程也就 100M 左右),不过感觉在 Linux 下更加丝滑。

    嗯嗯,打算试试 PyCharm 和 VS Code,毕竟这两个都大名鼎鼎而且用户也不少,应该也很好用。
    PythonAnswer
        121
    PythonAnswer  
       2017-09-15 11:50:39 +08:00
    jedi 单用一点也不卡啊。流畅的一塌糊涂。pycharm 每个项目索引一次好烦。
    liuxu
        122
    liuxu  
       2017-09-15 11:50:40 +08:00
    用 vim 做开发 php 的人在这里留个言
    Luckyray
        123
    Luckyray  
       2017-09-15 11:52:11 +08:00   ❤️ 1
    本来看这种帖子都懒得喷,今天装 vim 插件装的我蛋碎了,正好趁他下载,来说几句。
    一般的高亮、补全、语法树、分屏、格式化、代码模板等等就不说了,要是有空折腾,弄上几十个插件也能用起来跟 IDE 体验接近
    以常用的 Intellij IDEA 为例,代码重构有木有?依赖分析有木有?直接导出来个 UML 类图行不行?函数自动生成有木有? DEBUG、内存分析有木有?远程调试有木有?数据库配置保存、连接,甚至带上 ssh tunnel,导入导出数据,直接生成 Java Bean 有木有?
    这还是我会用的,菜单栏好多功能点都没点过不知道干啥用的。vim 太复杂的或者小众的功能不很了解,即便上面的都有,你说得安装多少个插件才够?再说这些都是 IDEA 自带的基础功能,它也有几百上千的插件。
    非要揣着明白装糊涂,问日常使用率高几十倍的东西有什么优势,不是蠢到没边就是找喷。
    fyxtc
        124
    fyxtc  
       2017-09-15 11:54:41 +08:00
    其实看写什么把。。。如果是 java 这样的,肯定 ide 优势太大,但是如果是 lua/python 这样的脚本 我觉得还是用编辑器舒服。。。我是 sublime+vim.....我觉得找到适合自己的操作方式就行
    wangxiaoer
        125
    wangxiaoer  
       2017-09-15 12:22:43 +08:00
    @symons 题主,我来总结一下,你——熟练掌握 vim 的开发人员,在尝试 IDE 的时候因为需要花费时间熟悉新的键位等配置,然后你就得出“ ide 比 vim 学习成本高”这个结论。

    我表示严重怀疑你的逻辑能力。
    zhangsen1992
        126
    zhangsen1992  
       2017-09-15 12:56:17 +08:00
    ide vim 都用,最常用 vim 写东西,ide 用的不爽
    hellohello123
        127
    hellohello123  
       2017-09-15 13:48:01 +08:00
    @bumz IDE 是 编辑器 的超集,我觉得这种并没有问题,IDE 至少包含一个文本编辑器;你可以说某一特定编辑器,某一项特定的功能,在某一中 IDE 上并没有。不过讨论这个并没有什么意义。我之前回复你,想表达的意思是,你说的批量替换,只是一个文本编辑器最基础的功能,各种 IDE 的文本编辑器显然也是支持这个功能的。你举的例子并不恰当而已。
    hellohello123
        128
    hellohello123  
       2017-09-15 13:50:12 +08:00
    @bumz 另外,回答你的问题,你说的数据预处理,能否举出一个具体的例子?不然没法讨论。
    u2386
        129
    u2386  
       2017-09-15 13:52:14 +08:00 via iPhone
    相反,我认为初学者可以用 IDE 来辅助自己学习编程,能有效防止自己犯比较初级的错误。而已经熟练的用编辑器写地更自由。
    Jiavan
        130
    Jiavan  
       2017-09-15 14:09:11 +08:00
    @CtrlSpace 我们全部使用 vim 写代码
    eijnew
        131
    eijnew  
       2017-09-15 14:42:37 +08:00
    sublimeText 和 vim 基本被用来做文本处理 列编辑、正则批量处理文本很有优势
    ide 写代码还是很爽 一直...就好了
    littlewing
        132
    littlewing  
       2017-09-15 14:47:02 +08:00
    个人认为 VIM 学习成本太高
    ddhwen
        133
    ddhwen  
       2017-09-15 14:50:37 +08:00 via Android
    码代码还是用 IDE,毕竟调试方便。遇到需要 sublime 就开 sublime,遇到服务器编辑配置就用 vim
    liubag
        134
    liubag  
       2017-09-15 14:59:01 +08:00
    ipwx
        135
    ipwx  
       2017-09-15 15:01:00 +08:00
    @quinoa42 一个功能“能用”和“好用”的差别有区别的。

    可能你觉得实现了 80% 程度就觉得好了,但我是那种连 Eclipse 对 Java 的支持都看不上的人。所以我站 IDE。
    JerryCha
        136
    JerryCha  
       2017-09-15 15:25:07 +08:00
    我校教 C 语言都是抄起 code::blocks 就干的,简单方便
    Delete
        137
    Delete  
       2017-09-15 17:25:55 +08:00
    全世界 90% 用 vim 写代码的程序员都在 V2EX 了
    gnaggnoyil
        138
    gnaggnoyil  
       2017-09-15 20:57:48 +08:00
    @NoAnyLove 问题就是对于 cpp 而言补全函数名之类的事情很麻烦啊……比如我敲下了'std::char_traits<wchar_t>::'接下来希望 intellisense 能自动补全,这种需求可不是简单的下推自动机跑一遍就能解决的啊是吧……
    BingoXuan
        139
    BingoXuan  
       2017-09-15 22:19:55 +08:00
    vim 有一个最大的好处就是你可以把本机的配置扔到任何*unix 系统继续用
    xjqxz2
        140
    xjqxz2  
       2017-09-15 22:25:37 +08:00
    一个曾经的 Vimer ~~现在因为公司里都是 PHPStrom 然后入乡随俗了....
    lazzyboy
        141
    lazzyboy  
       2017-09-15 22:32:36 +08:00
    有没有人尝试过 SpaceVim ? 个人觉得 Vim 的学习曲线是高,但是这是一劳永逸的东西,会了他之后,很大程度上提升自己编辑代码的能力。

    如果有兴趣,可以试试 SpaceVim, 这里是中文文档

    https://github.com/SpaceVim/SpaceVim/blob/dev/docs/README_zh_cn.md
    NoAnyLove
        142
    NoAnyLove  
       2017-09-15 22:55:33 +08:00
    @gnaggnoyil 不会 C++,不过试了试你说的'std::char_traits<wchar_t>::',在我这里的 Vim 确实是有自动补全的。

    [Imgur]( )
    shihira
        143
    shihira  
       2017-09-15 23:57:59 +08:00   ❤️ 5
    从前有一些用牛耕田的人。

    后来,他们听说了拖拉机这种东西,大家都说这东西好用。于是他们去观摩了半天之后说道,这什么破东西,这么多操作柄这么多仪表噪音还大,不会用不会用,用这东西的都傻逼,而且居然还 tm 要考驾照。于是他们都回去继续用牛耕田了。
    secondwtq
        144
    secondwtq  
       2017-09-16 00:49:14 +08:00
    @Luckyray 既然吐槽这么多,为什么还是在装呢?
    Luckyray
        145
    Luckyray  
       2017-09-16 00:54:08 +08:00 via iPhone
    @secondwtq 拖拉机开多了,试试怎么用牛耕地……
    secondwtq
        146
    secondwtq  
       2017-09-16 01:01:20 +08:00
    @Luckyray 没必要,有拖拉机了,牛就拉去拖拉机开不上去的地方耕吧
    想要尝试牛魔王的话出门左转 Emacs
    lslqtz
        147
    lslqtz  
       2017-09-16 10:55:15 +08:00
    st+code+vs 路过
    asuraa
        148
    asuraa  
       2017-09-17 10:45:23 +08:00
    vs2017 企业版路过,盗版的,反正没掏钱。
    fyxtc
        149
    fyxtc  
       2017-09-17 13:05:53 +08:00
    @CtrlSpace 话不能这么说。。。主要看你写什么。。如果写 java 那样的,肯定 ide,但是写 py/lua 这种,vi 配几个插件也能很好写,其实也是看个人习惯,没必要用一个就嘲讽另一个,都是程序员,何必呢,自己选择自己的工作方式,舒服就好
    hijkzzz
        150
    hijkzzz  
       2017-09-17 17:07:58 +08:00
    第一次听说 IDE 学习成本高
    components
        151
    components  
       2017-09-17 19:20:08 +08:00
    反正我司是用 IDE+sublime
    正式项目一律 IDE,不允许你用 vim 慢慢折腾,耽误效率
    leondotli
        152
    leondotli  
       2017-09-17 21:53:05 +08:00
    脚本语言用 Vim 效率可以很高,结合 tmux, iterm2 等,可以全程无鼠标,开发效率是超过 IDE 的,上面吐槽 Vim 的可以理解,因为没认真折腾过三年以上的是完全想象不到的,可以类比只用鼠标在 IDE 开发的人想象不到你熟练的用 IDE 快捷键开发的场景。
    Java 还是老实用 IDE,特别是 IDEA,代码提示不止准确,而且相当智能,Vim 也可以有类似( YCM, Eclim ),但体验比 IDEA 差很多。
    用 IDE 的问题主要是没有一个统一抽象的切换基于 grid 的切换快捷键,针对 editor tab, tool view 的来回切换不畅,有时还不如用鼠标,相对的 terminal, tmux, vim 等就是一个个 window 或 pane 的抽象,切换比较简单。
    components
        153
    components  
       2017-09-19 21:57:01 +08:00
    @leondotli 脚本语言比如 javascript 也建议用 IDE,因为有些方法只有特定浏览器才兼容啊。而一些 IDE 可以提醒你浏览器的兼容程度。
    mrwong
        154
    mrwong  
       2017-09-20 17:15:58 +08:00
    我跟你讲,我用自行车攒了一台法拉利。
    symons
        155
    symons  
    OP
       297 天前
    时隔多( 6 )年,回来重新审视当年我这个问题
    IDE 是 Integrated Development Environment 的简写,中文是集成开发环境。vim 是一款文本编辑器。两者没有可比性。

    如果换一种问法,在日常开发中更倾向于使用 vim 还是 IDE ?
    那需要看以下几个条件,在工作中写代码不是你想用啥就用啥,回家了可以随便折腾,在工作中还是要以效率为主
    1. 公司代码库的规模
    2. 公司对于 IDE 是否有特殊的配置或者插件需要强制使用
    3. 从沟通配合的角度来看,是否适合在大家都用 IDE 的情况下,你使用 vim

    ---
    希望下次再看到这个问题,也能有新的看法
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3356 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 11:22 · PVG 19:22 · LAX 04:22 · JFK 07:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.