最近发现电脑内存有些吃紧,主要是项目模块太多,涉及 JAVA、nodejs(很多遗留工程)、python(自动化测试)。之前一直是 webstorm 来写 nodejs,java 用 idea,python 用 pycharm,而且每个 ide 都要开多个工程;加上电脑跑了 docker、虚拟机。主要我发现 webstorm 开的时间越长,内存占用越大。
于是,nodejs 准备切回 emacs 来写了。
下班后,配了 lsp-mode,感觉补全还可以(本身js就是弱类型的,想要完全准确可能性不大,webstorm也做不到);然后配置了 indium 来断点调试,效果还算满意。
优势: 当 webstorm 没有把所有工程打开时候,切换工程需要花一些时间,emacs切换工程速度就比较快了。
缺点:没有 ide 方便的鼠标点击调试,没有 ide 配置环境变量之类的方便。另外就是,补全效果应该是没 ide 好。
总结:nodejs 目前看来用 emacs 基本可以了,java还是继续用 idea 了,毕竟启动 tomcat、配置变量等还是 ide 方便,而且 idea 可以装一些规范插件,有助于代码质量提升。python目前还没在 emacs 尝试,因为目前也只有自动化测试是用 python 写的,用的频率不高,偶尔用的时候用 pycharm 就好了,所以暂时没折腾的需求。
PS:个人感觉,工具满足需求就好,哪个用的惯用哪个,没必要一味地追求用哪个编辑器,折腾浪费生命,当然,另一角度来说,生命在于折腾。
额,还好吧,配 lsp + indium 也就花了我九点半下班后一晚上的时间。裸敲还是有点牛逼。
如果不是目前工作有需求了,我也不折腾了。
我经常React,其他模板语言,偶尔纯JS,
有时候配置好了一个项目并不能通用,而且大部分情况下总是给我惹麻烦。没错,说的就是tide
.
现在已经习惯裸敲了,配合一个company-abbr够了。
cireu
7
折腾多语言的项目emacs的确比较有优势,开五六个ide没人受得了的
是的,确实有点搞不动了,所以折腾一下去掉个 webstorm 的使用。
大佬,我问下你lsp是怎么补全nodejs的,我用lsp怎么只能补全javascript,不能补全导入的nodejs模块
cireu
16
js常年补全不准,你可以考虑ts
npm i @types/node --save-dev
装完重启lsp server
nodejs 的 node_modules 我的也没有补全,company-backends补全的选项明显是降级到第二个group了。
具体没研究,一般来说估计也不建议开启 node_modules 的补全吧,否则太卡,你看 tide 里需要的 jsconfig.json (微软给出的配置说明),
里面就有写不建议补全 node_modules,如果你想补全也可以打开。
tide是可以实现 node_modules 补全的,lsp我没看具体有什么可配置的选项,lsp目前稳定性较差,升级后发现不能用就回退了,而且跳转也没搞定,没有时间折腾它。就也装了 tide,用tide 跳转,tide还算比较稳定的。
tide 可以在论坛搜一下,有人发过帖子。
PS:node_modules 里面的东西我一般都会直接跳过去看 api 了= =,毕竟经常碰到名字类似函数也不知道用哪个,靠补全结果也不知道具体有什么差异。
其实这东西在未来很长时间内不可能有 IDE 那么好的体验的,我是工程多,IDE用起来工程切换麻烦,内存占用太大(IDE开一个工程占用的内存赶上我在 emacs 里面起五个 lsp-server 和 tideserver了)。如果你那个没必要,建议还是用 webstorm 之类的,那体验绝对比编辑器之类的好多了(虽然编辑体验不够好)。
我是用spacemacs加上一些自己的配置,如果换成ide的,会特别的不顺手,如果这个ide还没vim插件的,那我用着真的是难受死了,在chrome devtool下调试的时候,我就觉得十分难受了,google为什么不能加个vim编辑模式啊
现在写 js 的没有 vim 插件的 IDE 不多吧?Webstorm 挺好用的,我用了一段时间。快捷键基本可以自定义成你现在 spacemacs 里的快捷键。如果你在意补全的话,那 Webstorm 就是快、准,而且基本编辑方式自定义后应该可以接受的。
ps:根据我多年折腾 emacs 经验来看,对非顶级大神来说,写代码不够合适,尤其是大型工程,更尤其在我们待的这儿这么个程序员行业略显浮躁的时期。