首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何评价 GitHub 发布的文本编辑器 Atom?

如何评价 GitHub 发布的文本编辑器 Atom?

作者头像
bear_fish
发布2018-09-19 13:13:28
1.1K0
发布2018-09-19 13:13:28
举报

https://www.zhihu.com/question/22867204#answer-31728806

这里是HN上的讨论:

GitHub's new text editor leaked on Twitter 这里是github page: Atom · GitHub 好多repo啊

我不知道有没有知友了解更多情况?我很期待。

作者:尤雨溪 链接:https://www.zhihu.com/question/22867204/answer/22944645 来源:知乎 著作权归作者所有,转载请联系作者获得授权。

今天拿到邀请试用了一会儿,可以明确的说跟 Sublime 没有关系。Sublime 是原生界面,脚本用的是 python;Atom 应该是基于 Chromium Embedded Framework,基本上就是个 web app,源码都是 CoffeeScript 写的,连界面都可以用 CSS 来自定义。

除了基本的操作和界面外,和 Sublime 最大的差别在于扩展性。Atom 非常强调模块化,很多默认功能也都是开源的模块。自带友好的模块管理界面,相比之下 Sublime 需要自己手动安装,或是依赖第三方的 package control。Atom 的扩展也是用 JS 或者 Coffee 在 Node + webkit 的环境下开发,并且可以使用 npm 的包,这对于前端和 Node 开发者是很有诱惑力的,需要的话完全可以把 Atom 打造成一个 IDE。

一个明显的缺点是,启动和开文件速度明显不如 Sublime 3。

GitHub 创始人 Mojombo 在论坛上说 Atom 正式发布以后是要收费的,内核将会是以限制性的协议开源,可以看了学习,但是不能拿来商用。其他所有官方模块都是 MIT 协议开源。从策略上来讲,GitHub 以后肯定会通过官方模块把 Atom 和 GitHub 进行深度整合。收费我估计不会贵到哪里去,说到底让开发者因为 Atom 而用 GitHub 用得爽,进一步加强用户黏度才是目的吧。这和 Google 做浏览器是一个道理。

---

补充一些技术实现上的细节:打开 Package Content 看了下,可以看到内部的由 CoffeeScript 编译过来的 JavaScript。内部的一些模块在 GitHub 上也能找到源码。核心的两个库,一个是界面库 Space Pen ( https://github.com/atom/space-pen ),自带创建 DOM 的 DSL,并继承自 jQuery 原型,可以看做加强版的 Backbone.View。另一个库是 Theorist ( https://github.com/atom/theorist ),一个基于事件的模型库,类似 Backbone.Model + Backbone.Collection。内部用了大量的 emitter 和 subscriber 模式。总的来说,代码很清晰,模块化做得非常好,非常值得做 SPA 的前端学习。

作者:韦易笑 链接:https://www.zhihu.com/question/22867204/answer/90728790 来源:知乎 著作权归作者所有,转载请联系作者获得授权。

用过不少编辑器:UltraEdit / EditPlus / (G) Vim / GEdit / NotePad++ / TextMate / ProgrammerPad / Sublime 。确实是工作上用他们写过代码的。而 VSC / Emacs 只是体验了一下基本使用方法,算不上真用。用下来的结论是:Atom 比 Vim 更 Vim,比 Emacs 更 Emacs,同样,比 Sublime 更 Sublime。 Atom 唯一的槽点就是“卡”,不过那是去年的情况了,1.0后性能数次大提升,比起sublime/vsc之类虽不算流畅,但同时编辑20个数千行的文件没有压力。如今让人感觉慢的地方主要是启动loading(也大大短于eclipse, idea),使用时并没察觉它比其他编辑器慢再哪。而文本编辑器的快慢,更重要的是“让你工作更快更有效率”。下面说说为何 Atom比其他更有效率: 兼容VIM模式 这无疑团结了一大班 Vim过来的用户,Sublime虽然也有VIM模式,但是Sublime在 mac下面的vim模式有bug,我习惯用 hjkl来移动光标,sublime再mac下hjkl移动有问题,且我习惯CTRL_[来返回NORMAL,手指不离开主键盘区,而sublime的vim模式只支持ESC返回,加上其作者经常神秘消失,最稳定的2.x版本已三年没有更新,这些问题一直得不到修正。 由于Atom的定制程度直追 Vim/Emacs,它的vim模式能够使用插件来实现,而不像sublime必须builtin,Atom的VIM模式除了官方实现外还有很多用户实现,各有所长,你不喜欢可以换,Sublime就傻逼了,觉得builtin的不行,你就没办法了,而且作者不更新你也没办法。 Atom里的Vim模式并不是强制的,你可以用也可以不用,这样入门用户也不会觉得困难,但是如果你用惯Vim的话,使用Vim模式可以取得更好的效率,我觉得Vim/Atom-VimMode能够提升效率的地方有以下三方面: 1. 手指不离开主键盘区: 所有功能皆能在主键盘区完成,不用去按方向键,不用把手挪去按Home/End,更不用动鼠标。就像咏春中强调中线理论,认为一切动作围绕中轴线开展,守护自己中轴线的同时攻击别人的中轴线。Vim/Atom-VimMode中,双手不但从不离开主键盘,并且八根手指随时守护再HOME位(ASDF, JKL;)有动作就移动,然后马上归位。 2. 细粒度微操作: 星际/dota玩的好,微操基本功,微操又快又精确,Vim/Atom-VimMode一样,比如:

if (xxxx) {
}

很多人编码时习惯“成对编码”,写了申请资源的代码,先把释放资源写了,写了左括号,先把右括号给补充完,当你写完第二行代码时,需要用到“再1-2行中间插入一行”,此时你的光标停留在第二行,传统编辑器你需要:按上箭头移动光标到第一行 -> 按END键去到第一行末尾 -> 按回车插入一行,mac下的END键还需要用CMD+右来组合出来,而Vim/Atom-VimMode中,你只需要shift+o即可,手指完全不离开主键盘区,不用像传统编辑器那样,右手先移动到箭头区又移动到HOME的小键盘区,再移动回主键盘区这么麻烦,类似还有: 使用o直接再下一行插入,避免 END/回车 使用I再行首插入,避免移动半天光标。 向前/后移动一个单词到单词头、尾。 快速更改当前单词,用/来快速搜索移动光标。 dd+p来快速移动代码块,取代shift+方向键半天。 shift-j 来两行合并成一行,代替 HOME, back 若干次。 。。。 你再编辑代码的时候,90%的情况可以直接一步完成,这就叫细粒度微操,而且整个过程手都不需要离开主键盘,不像传统编辑器那样,若干笨重的操作组合再一起,操作不够细步骤多的同时手还要再:主键盘区,方向键区,扩展键区 来回移动,效率奇低。而Vim/Atom-VimMode下,手指随时守护在home区(ASDF JKL;),所有微操都是围绕HOME区进行,不会移动到任何主键盘以外的区域,更别说用鼠标、触摸板。 3. 批量操作: 比如要给下面代码每行后面加一个分号:

var x = 1
var y = 2
var z = 3
console.log('result is ' + (x + y + z).toString())

一般做法是:移动光标到行末->END->分号->移动光标到下一行,Vim里面不需要移动光标到行末,只需循环敲入:“A;<ESC>j” 即可,本来操作就少很多。这还不是最少操作,更少操作是利用Vim里面的句号“.”功能重复上一次操作,即第一行“A;”补充了一个分号后,第二行只需要按一下"."即可重复,于是最后操作变为: 第一行:A;<ESC> 后面所有行:J. 超级爽快的操作,这样的操作还很多,你还可以单条命令对一万行代码重复上述步骤,或者把c代码拷贝到go里面先一句话把所有分号给删除了。Vim下面的名言:绝不重复。 总之如果你熟悉 VIM模式,用 Atom能感到完全自由的方式,随心所欲的书写代码,而不是被书写这件事情费脑筋,解放大脑完全用于思考而不用于打字。但是同时对不习惯VIM的人照样友好,或者对想使用VIM的便利却又痛恨VIM这个软件的简陋的人带来了福音。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年12月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档