-
Notifications
You must be signed in to change notification settings - Fork 35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
于是我从 WebStorm 转向了 VS Code #59
Comments
感谢分享~速度体验和核心理念特别好。我一直在用 WebStorm,上次在 chat 群里面讨论到 IDE 的事情,因为换 IDE 还是一个成本比较高的事情,想试试 VSCode 但我一直没有做。不过倒是产出了一个 checklist,可供换 IDE 的时候参考,里面有几个点,不知道楼主可否分享下这些方面试用 VSCode 的心得~
上面是我的界面,简明的界面可以避免分散注意力在多余的元素上,没有 toolbar / status bar / navigation bar / tool buttons,只有行号和代码。同时,没了 GUI,快捷键系统就必须跟上。所以比较感兴趣全键盘、快捷键支持、插件系统这一块,以及 VSCode 有哪些特色的功能和体验,楼主可否分享下使用体验。谢谢啦。 楼下补充得真详细。产品定位、LSP API 很有启发。感谢分享,没有其他独立问题就不再单独回复了。 |
我来补充一点, VS Code 的定位其实是 code editor,并不是 IDE,更准确的说,可能是介于 code editor 和 IDE 之间的一种产品形态。VS Code 本身的设计可能更趋于 code editor 一些,但会提供很多基于 Language Server Protocol (LSP) 的 API,使其能够很方便的扩展到 IDE 级别的功能。VS Code 本身内置了 JS/TS 的 LSP,而其他语言的 LSP,就需要用户自己安装插件来获取了。像 Vetur 这个插件,其实也就是个 LSP,会将 vue 文件里面的 html/css/js 分别交由各自语言的 LSP 处理,这一点在 Vetur 的项目主页也是有说明的。 @linesh-simplicity
|
然后我觉得过一段时间你就会换回webstorm的,因为ws的智能提示完爆任何编辑器 |
vscode 比 webstorm 还有抢很多的是 调试。。。尤其是 node |
调试功能也基本不会用到😂 都通过其他的方式消化了,基本只有调调生命周期方法的时候会打个 log:
|
@agileago 没错,VS Code 的智能提示体验太差了,这点我忘了在文章里提到了,但是,WebStorm 的智能提示也没有好太多,如果没有用 TypeScript,它会索引所有代码,收集项目里所有的变量名,然后在你输入匹配的字符时将所有匹配项全显示出来。 @git-issue 正好相反,我觉得 WebStorm 里的调试功能比 VS Code 要好用一些 😂 |
@izee WebStorm 已经内置了这个插件了,但是这个插件没法支持 TypeScript,也没法正确提示 |
vs的提示包含太多内容了,有点不够好用,而且你没办法关闭那些无用的提示,无从下手。 |
@yyman001 赞同。但是在 WebStorm 中,即使开启了「强类型检测」,也还是有很多无用的提示。 |
博主让我又增长了见识,原来还能用issue来做博客。
|
最近也在用VSCode写vue,那么问来了,点一个class的字符串,不会跳转到对应 的style里,点一个方法 不会跳转到方法实现那里去,求帮助 |
@songxing10000 没准博主已经从vscode转到webstorm了,期待下一篇 |
@agileago 本来想自己写个 |
@songxing10000 平常没有用到过这个功能,这个功能对我来说无关紧要所以没觉得有啥不妥 😂 @agileago 我仍然在用 VS Code |
@lmk123 你看到一个方法,想看下怎么实现的或者想修改这个方法,在webstorm里点击一下这个方法的字符串就能跳转到方法实现那里去,VSCode目前,只能自己复制一个这个方法名,搜索,command g跳转到下一个字符串,才能定位到这个方法实现 |
@songxing10000 VS Code 确实不支持 JavaScript 的方法跳转,但是它支持 TypeScript 的,而我一直都写 TypeScript 所以没太大问题。 WebStorm 的做法其实跟全局搜索差不多,如果有多个同名的方法,你点击方法名之后会展示一个列表给你选择要跳到哪个方法去,并不能精准定位到你点击的这个方法的实现位置。 |
@songxing10000 @lmk123 |
@liuliangsir 一开始就说的vue,没有说过JS |
蛤,启动速度和内存到你这里居然变成了优势。 |
说到这个,我个人有个理念是这样。性能这个事情,可以用钱解决的问题就用钱解决就好了。比如现在对我来说,我觉得追求效率的一个开发配置应该是这样:
还要省钱买垃圾桶… |
@linesh-simplicity 同意,注意效率的人才是真正热爱程序的人 |
算了,还是抱紧webStorm 吧,老了折腾不动了 |
由于写 |
@songxing10000 |
@agileago 我们都用Weex近两年了,挺好的,Flutter很多东西还不成熟,上次运行了其demo感觉流畅度还不如Weex呢,不过我看好Flutter |
各位,我又回归 WebStorm 了 😂 顺便分享一波我的 WebStorm 设置:https://github.com/lmk123/WebStorm-Settings |
我用的 webstorm v2017 版 对冲突文件处理不太友好,有没啥别的插件支持 |
各位用webstorm的大佬们,借楼请问有没有用Emacs/Mac OSX keymap的?最近试了一下好像jetbrain全家桶在我win10/ubuntu上,每当按ctrl-n的时候都会卡住报错搞得想放弃了.....去google了半天也没看出个所以来......不知道大家有没有遇到的,这种属于得等他们修复的bug么? |
这个的话,我一直直接在文本上解决冲突。这种冲突一般不是很复杂,用图形化界面还要点几下,不必要。如果冲突一般很多很复杂,说明开发流程应该改善,要经常更新主分支的代码、经常把代码合并回主分支。
不知道设置里面的“Invalid and Restart”有用没? |
我还没试这个,然后也不知道为啥自己就好了,很神奇......谢谢回复哈。 |
我就知道 你会用回ws的, |
年轻人玩得真花 |
用WebStorm TDD FizzBuzz 两部分需求,只需要92秒,VSCode党也整一个分享分享呗?友好交流一下。 |
只有4G内存的我,转向了VSCODE.不过我还是觉得Webstorm好用,吃内存不是白吃的 |
若干年以后,你们统统都会回到 webstorm。折腾这个没啥意思,就像一开始用 Android 的,各种刷机,尝试各种 rom,最后都搞不动啦。不如花点时间搭建个好的开发平台,升级下硬件软件等,这对开发效率的提升完爆一切花拳绣腿 |
demo默认是debug模式,如果你试试release模式,你会发现新天地的。 |
非常感谢作者的这篇文章加这段回复, 成功阻止了我瞎折腾的决心. |
我从webstorm转到vscode是因为卡顿问题,有时候新加一个node_modules会导致整个系统卡死半个小时。现在用vscode+prettier爽的不要不要的,另外我想项目几乎都是typescript。在webstorm上配置vue+ts,我搞了半天也没搞定。相反在vscode上就很轻松。代码提示和跳转也很准确。tsx的写法让模版的代码提示和跳转也很智能,我现在找不到重回webstorm的理由了。 |
我想问一下,楼主是不是已经用回webstorm了 |
vscode拓展性好、轻量级,非常适合作为编辑器,但是它不够智能。 |
vs写c#如果没有jb提供的插件也是很难受的,代码补全很弱,不能自动using,切换出去再回来就不能继续提示了,要删掉重来,括号补全也很弱。 |
航母和快艇的区别,ide vs 编辑器。两个不同层面的东西,功能上有很多重合的,根据项目类型和个人习惯选择吧 |
才刚试vscode,真的很多补全的插件都么得,而且找插件也难得找 |
年轻人, BUG改完了吗? 何必瞎折腾呢, 继续交钱吧.. |
我真的觉得VScode 的git太难用了,我裂开。WebStorm的git真好用的。 |
这个真的很赞同 |
我使用webstorm最主要的原因就是离不开它的git |
来挖个坟,现在vs code又多了一个特别大的优点:无敌的远程开发体验,无论是连接到本机的WSL,还是直接连接到远程的Linux,开发体验真的太好了。我现在就是申请了一个公司的虚拟机来跑vs code远程服务,本地的vs code客户端一身轻松,脏活累活都扔给服务器,服务器的配置不够了还可以随时加配置,从此再也不用听到笔记本的风扇啸叫了,再也不用担心内存不足了,用垃圾笔记本也能流畅开发了。相对的,目前的jetbrain家的fleet还处在preview阶段基本没法用,gateway的远程开发也用过跟vs code完全没法比,总是会遇到奇奇怪怪的问题。 |
项目大了感觉还得 webstorm。vscode 的重构功能不敢用。webstorm 虽然也很多坑,但是还是好太多了。 |
自大学以来,我换了不少编辑器。一开始学习 C# 的时候,用的是 Visual Studio,这款编辑器确实非常好用,即使是用来写 JavaScript 也有很全的代码提示。
后来我决定专攻前端开发,这时候 Visual Studio 就显得太过于笨重了。在学校老师的建议下,我开始用 Dreamweaver,老师极力推荐它的原因是它的「所见即所得」特性——不需要自己写代码,只需要拖一些控件进去,它就会自动帮你生成页面……可是它生成的代码太差劲了,我从来没拖过控件,它的代码提示也不如 Visual Studio 全面,时不时的还会卡顿。
再后来,我在网友的推荐下开始用 WebStorm,简直爱不释手,从此再也没有换过编辑器——
直到半个月前,我试了一下 VS Code。
让我决定去尝试一下 VS Code 原因倒不是因为这个编辑器本身,而是因为它的一个插件——Vetur,由 Vue.js 团队开发,用来给
*.vue
文件提供代码提示与 TypeScript 支持。用过 Vue.js 的同学都知道,Vue.js 配置项里面的方法的this
其实指向这个 Vue 实例本身,但是 WebStorm(我想其他编辑器也一样)只会把方法里的this
识别成这个方法所在的对象,所以编辑器不能正确的提供this
的代码提示。在尝试了 VS Code 之后,我再一次体会到了当时发现 WebStorm 的时候的心情——爱不释手、给它折腾了一堆插件、想立刻写一些代码来体验一下这个编辑器,最后,我就停不下来了 😂
我想从我的使用角度解释一下为什么我最终从 WebStorm 转向了 VS Code,也许能给看到这篇文章的朋友们一点参考。
VS Code 最让我看中的特点就是轻量——它的轻量体现在它的启动速度、内存占用和功能。
注意:我是在 2015 年款 MacBook Pro (8GB 内存)上对这两款编辑器进行比较的,可能与你的感受不太一样。
启动速度
VS Code 启动的时候非常快——这里的非常快是相对于 WebStorm 而言的。我使用了同一个中等大小的项目(下文统一称之为测试项目)做测试,这个项目使用了 TypeScript 和 Vue.js,大概有 30 个文件。
在使用 WebStorm 的时候,一般要经过下面这些步骤:
node_modules
文件夹 Mark Directory as Excluded,那么需要的时间会更长。所以从我打开 WebStorm 到它真的可以用的这段时间,已经快有半分钟了!在使用 VS Code 之前,我从来没觉得这段时间很长。
那么同样的项目,VS Code 打开需要多长时间?答案是 4 秒。这是在我安装了 19 个扩展的情况下得出的结论,而这 19 个扩展基本涵盖了 WebStorm 中我用得到的功能。
我仔细观察了一下为什么 VS Code 相对于 WebStorm 会快很多:
内存占用
我经常会需要同时开启两三个项目,然后再开一些其他软件(听歌的、微信、Chrome 之类的)。如果我使用 WebStorm,时间一长,8GB 内存就会被用的只剩两三百兆,我不得不用 CleanMyMac 清理我的内存,不然电脑会变得反应迟钝。
同样的情况换成是 VS Code 就没有这个问题。我知道这一感受非常主观,所以在我写这片文章的时候,我尝试分别用这两个编辑器同时打开三个相同的项目,但它们的内存占用从数字上看是差不多的——都是 1.6GB 左右。有一点不同的是,VS Code 的进程本身占用内存很少,但它有很多个 Code Helper 进程,我每关掉一个项目,Code Helper 的数量和它们占用的内存都会相应减少。
上面的数据仅仅只是打开了三个项目的情况,如果后面多使用一段时间,WebStrom 的内存占用会越来越多——这也跟你使用了 WebStorm 中的多少功能相关。按照我这半个月来的使用体验,WebStorm 会让我觉得内存不够用,而 VS Code 就没有。
当然,这些都只是我的主观感受,由于没有足够的数据支持,你可以认为它们在内存占用方面打了个平手。
功能
一个编辑器的功能是越多越好还是越少越好?功能多当然很不错,但并不是所有人都需要一些功能,而且多余的功能会导致编辑器更加笨重。
WebStorm 和 VS Code 都提供了插件系统,但仅从核心大小来看的话,VS Code 无疑要比 WebStorm 轻量许多——这一点你从它们的设置里就可以看出来了。
WebStorm 的插件系统更像是锦上添花,因为它已经内置了很多很有用并且也很好用的功能了。WebStorm
还内置了很多官方维护的插件,但大部分我都不需要,我还得自己去关闭一些。所以,第三方插件我一个也没装过。
反观 VS Code,我觉得它的插件系统才是它的核心功能——VS Code 本身缺少很多功能,如果你不安装一些插件,基本上很难愉快的写代码。
从个人的角度来看,我非常喜欢 VS Code 的做法——我在写一些 JavaScript 项目的时候也是这么想的——核心应该尽可能的小,然后通过插件的方式来补充功能以适应不同的使用场景。Koa 和 Chrome 浏览器就是使用插件扩充功能的例子。
但是,依赖于社区开发的插件就会出现一个问题——插件的质量总是参差不齐的,插件的维护者也不一定会长时间维护下去,所以在给 VS Code 安装插件的时候我花了很长时间尝试了很多个同样功能的不同插件,不过这个痛苦的过程也只是一次性的。
对于未来,我希望 VS Code 团队能像 WebStorm 那样有一些官方维护的高质量插件,避免用户在选择插件的时候眼花缭乱。不过,目前 VS Code 肯定是没有多余的精力做这些的,所以作为用户的我们也只能自己不断的尝试了。
总结
本文从三个方面阐述了我个人认为 VS Code 对比 WebStorm 的优势,但实际上 WebStorm 也并不是没有比 VS Code 好的方面:
我的建议是,如果你不喜欢折腾、更喜欢使用纯 GUI 方式写代码,WebStorm 无疑更适合你,使用 VS Code 的时候,你可能得学一些 Git 命令来弥补 VS Code 在 Git 集成功能方面的不足;如果你更看中 VS Code 的轻量,并且也愿意付出时间去适应、安装插件,那 VS Code 会比较合你的胃口。
最后,欢迎你留下自己的看法 ;)
The text was updated successfully, but these errors were encountered: