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

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这个软件的简陋的人带来了福音。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏hbbliyong

Web 开发常备工具

工欲善其事,必先利其器。如今 Web 开发标准越来越高,Web 开发者也在不断寻找途径提升自己的技能。为使大家的开发工作更顺利进行,本文整理了 10+ 款比较优...

46080
来自专栏小轻论坛

这款功能强大的视频压制工具,用了就爱不释手了

为什么今天给大家推荐这个软件呢?因为最近工作需要,每天要处理一百多篇视频加水印的工作,主任老王给我们推荐狸窝全能视频转换器,相信用过的人都知道,软件界面上并不能...

1.6K30
来自专栏章鱼的慢慢技术路

在Unity场景中更改天空盒的步骤

68360
来自专栏互联网杂技

20个为前端开发者准备的文档和指南8

1.Meteor: The Official Guide(Meteor官方指南) Meteor介绍的链接地址: http://www.geekpark.net/...

38250
来自专栏JackieZheng

AngularJS in Action读书笔记6(实战篇)——bug hunting

  这一系列文章感觉写的不好,思维跨度很大,原本是由于与《Angularjs in action》有种相见恨晚而激发要写点读后感之类的文章,但是在翻译或是阐述的...

209100
来自专栏糊一笑

模拟制作网易云音乐(AudioContext)

记得好早前在慕课网上看到一款可视化音乐播放器,当前是觉得很是神奇,还能这么玩。由于当时刚刚转行不久,好多东西看得稀里糊涂不明白,于是趁着现在有时间又重新梳理了一...

50450
来自专栏菩提树下的杨过

如何在Silverlight4中使用摄像头

Silverlight4终于支持摄像头和麦克风了,网页上的视频聊天将不再是Flash的专利! 今天在一个老外的网站上看到webCam的使用示例(http://e...

20390
来自专栏腾讯社交用户体验设计

设计师的春天:中文WebFont解决方案Font-Spider(字蛛) - 腾讯ISUX

32030
来自专栏Coding01

一个码字工作者的写作工具 —— MWeb

由于 Markdown 格式简单易用,而且不受限于编辑器等影响,已经是写博客、写日志、写技术文档,亦或是用来写公众号文章的必备了。

19710
来自专栏大史住在大前端

大前端的自动化工厂(2)—— SB Family

原文链接:https://bbs.huaweicloud.com/blogs/53c0c3509b7a11e89fc57ca23e93a89f

10630

扫码关注云+社区

领取腾讯云代金券