Sublime text和Github's Atom有什么区别

Github宣布原子非常类似于Sublime。甚至一些键盘快捷键,如⌘+ p⌘+ Shift + P等也是一样的。

  1. Atom和Sublime有什么不同?
  2. 它是否包含诸如构建工具、函数定义跳转、文档等IDE特性?
  3. 有没有使用Sublime的人收到测试邀请,指出它们之间的区别?
  4. 我可以像Sublime一样使用文本的伴侣一样使用Sublime的主题、方案和包吗?

Atom Shell1

PS:在新标签中打开图像以获得更大的分辨率。

171015 次浏览

另一个区别是Sublime文本是一个闭源项目,而Atom源代码是/将是公开可用的——尽管Github不打算将其作为一个真正的开源项目发布。他们想要提供对代码的访问权限,而不是向贡献者开放代码。

Github公开了代码:http://blog.atom.io/2014/05/06/atom-is-now-open-source.html

Atom是使用Node.js, CoffeeScript和LESS编写的。然后它被包装在WebKit包装器中,该包装器最初只适用于OSX,尽管现在也有Windows版本可用。(Linux版本必须从源代码构建,但Ubuntu用户有一个PPA。)

很多架构和功能都复制自Sublime Text,因为它们都经过了尝试和测试。插件系统的工作原理几乎是一样的,但是通过公开新的api也打开了许多新特性和潜力。

我相信,由于肌肉记忆,快捷键基本上保持不变——人们会记住它们,并能够立即点击Atom。

首选项可以通过GUI来控制,而不是直接编辑JSON,这可能会降低人们开始使用Atom的入门门槛。我自己发现很难导航所有这些,因为在首选项中没有搜索功能。

你可以在# # atom-invites IRC频道上注册一个邀请,或者注册到他们的网站并添加你的电子邮件。第一轮邀请很快就来了。

我今天刚收到测试邀请,马上试用了亚当。GUI感觉像Sublime,是的,有一些捷径采用了Sublime。

除了上面提到的这些,我还发现了一些不同之处:

  1. Vim模式不如Sublime上的Vintage模式(它也不是一个功能齐全的Vim),因为Vim包处于开发的早期阶段。参见

    除了前面的回答之外,还有必要从开发过程中所做的选择的角度来澄清这两种产品之间的差异。

    Sublime是为平台编译的二进制文件。它的核心是用C/ c++编写的,它的许多特性是用Python实现的,Python也是用于扩展它的语言。Atom是用Node.js/Coffeescript编写的,在webkit下运行,Coffeescript是扩展语言。虽然在UI和UX上相似,但Sublime的表现明显优于Atom,特别是在处理大文件、复杂信噪比或对文件/缓冲区进行大量处理的插件等“繁重工作”方面。尽管我希望随着Atom的成熟,它会有所改进,但设计和改进;平台选择限制了性能。

    Sublime的“封闭”部分包括API和UI。除了皮肤/主题和着色器,API目前很难修改UI的其他方面。例如,Sublime插件不能与边栏交互、控制或在编辑区域上绘图(除非在某些有限的方式下)。在沟槽中)或操作状态栏以外的基本文本。Atom的“封闭”部分目前还不清楚,但我感觉它要小一些。 Atom拥有更丰富的API(尽管目前文档很少),其设计目标是允许更好地控制其UI。与webkit紧密结合,提供了大量的UI功能增强,这是Sublime目前无法实现的。然而,Sublime的扩展执行更接近于本机,因此那些执行计算密集型,高度重复或复杂的文本操作在大缓冲区在Sublime是可行的。

    5月6日,Github开源Atom。因此,支持和开发的速度很可能会很快。相比之下,Sublime的开发在最近已经明显放缓了——but it's not dead。特别是有许多bug,很多都是微不足道的,还没有被开发人员修复。在我看来,没有一个是引人注目的,但如果你想在快速开发中定期修复bug和增强功能,Sublime会让你感到沮丧。也就是说,根据Github的统计数据,用于Windows和Linux的可安装Atom包尚未发布在代码库上的活动似乎在宣布之前和之后的几周有所冷却。

    就IDE功能而言,从webdev的角度来看,Atom将允许类似Webstorm这样的扩展,尽管目前还没有出现。Atom在这种“沉重”扩展下的表现还有待观察,因为编辑器本身就感觉迟钝。由于API的限制和底层webkit的缺乏,Sublime不允许这种级别的UI定制,尽管开发人员可以在未来扩展API来支持这些功能。再一次,Sublime的基本性能允许涉及计算咕哝的事情;ST3的符号索引就是一个例子,即使在大型项目中也表现良好。尽管Atom的用户界面确实是模仿Sublime的,但一些改进明显缺失,比如Sublime的学习面板和tab补全弹出框,这些弹出框根据你最常用的默认值来加权。

    我认为这些产品是互补的。事实上,他们分享相似的视觉效果和按键只是增加了这一事实。在某些情况下,使用任何一种都有优势。目前,Sublime是一个成熟的产品,在所有三个平台上都具有相同的功能,并拥有丰富的插件集。Atom是新出生的孩子,他的五官会迅速长出来;它感觉还没有准备好生产,在性能方面有一些担忧。

    [更新/编辑:2015年5月18日]

    关于这两个编辑器自撰写上述文章以来的改进说明。

    除了对其核心进行错误修复和改进之外,Atom还经历了第三方扩展的快速增长,autocomplete-plus成为标准Atom发行版的一部分。扩展质量差别很大,尤其令人恼火的是不稳定的第三方包经常会使编辑器崩溃。去年,出于性能考虑,Atom已经转向使用React,将回流/重绘活动转移到GPU,显著提高了UI对典型编辑操作(滚动、光标移动等)的响应能力。虽然这大大改善了编辑器的感觉,但对于上面描述的CPU密集型任务来说,它仍然感觉很麻烦,并且启动速度仍然很慢。除了性能改进之外,Atom整体上感觉更加稳定。

    自2015年1月以来,Sublime的开发又开始了,修复了一些错误,一些小的新特性(工具提示API,构建系统改进),并以新的基于yaml的. Sublime语法定义的形式进行了重大开发(最终取代了旧的xml . tmlanguage)。加上替换Onigurama的自定义正则表达式引擎,新系统为精确的正则表达式匹配提供了更多的潜力,速度明显更快(高达4倍),并可以并行执行多个匹配。除了着色语法,Sublime还使用这些组件进行符号索引(goto定义等)和其他语言感知功能。除了进一步加快Sublime的速度,特别是对于大文件,这个特性应该为特定于性能语言的特性(如代码重构等)打开潜力。尽管作者一如既往地对未来的“大发展”守口如瓶,但他们承诺会有进一步的“大发展”。

我尝试了Atom,它看起来真的很好,但有一个主要问题(至少在0.84版):

它不支持垂直选择Alt+拖动-这是每个现代代码编辑器必须的。

Atom 是开源的(已经有几个小时了),而Sublime Text还没有。

  1. Atom和Sublime有什么不同?
    • Atom是一个基于JavaScript/HTML/CSS的开源文本编辑器/IDE。
    • Sublime Text是一个商业产品,构建在C/ c++和Python之上。
    • 与Atom类似的是Adobe括号,另一个基于JavaScript/HTML/CSS构建的开源文本编辑器/IDE。请注意,这使得括号更面向Web开发,特别是在前端。
    • 开源项目的优点是更快的开发速度,当然还有价格。
    • 李< / ul > < / >
    • 它是否包含IDE特性,如构建工具、函数定义跳转、文档等?
      • 简单的回答是,是的,是的,是的。这个应用程序是完全模块化的。开源将使人们能够自由地填补其中几个特性上的空白。
      • 李< / ul > < / >
      • 有没有使用Sublime的人收到Beta邀请来指出不同之处?
        • Atom的优点是入门级的黑客攻击能力,因为它构建在支持Web站点的相同代码之上。
        • Sublime Text的优势在于性能,因为它不需要运行在Node.js之上,而且它是一个更成熟的产品,即将达到稳定的版本3。
        • 评论中可以包含一长串的微小差异(我希望这个降价可以画一个表进行比较,但这是另一个问题)。
        • 由于Atom的快速投票率,我担心我在这里列出的一些差异将随着时间的推移而过时。举例来说,在撰写本文时,Atom只在Macintosh上可用,而Sublime Text已经是多平台的。
        • 李< / ul > < / >
        • 我可以使用Sublime的主题,方案和包吗,就像Sublime可以用文本伴侣做的那样。
          • 简短的回答是否定的,但是由于Atom的可黑客性,很容易将其他编辑器的包重新组装到Atom中。
          • 李< / ul > < / >

一个主要的区别是支持“印度字体”,也就是南亚脚本(包括高棉语、老挝语、缅甸语和泰国语等东南亚语言)。此外,对东亚语言(中文、日语、韩语)的支持也更好。这些是已知的错误(实际上是评分最高的错误),已经存在多年了(东亚语言支持似乎以前工作得更好,但现在已经很难使用):

以下是两者之间的一些区别:






虽然APM是一个独立的工具,但它是与Atom一起捆绑和自动安装的

我在一个极端的环境下工作;编辑远程文件系统上的文件(外部网络,当然),是安装在我的笔记本电脑通过ssh(aka。sshfs)。不管我为什么要这样做,尽管它的响应很麻烦,但当我使用Sublime Text 2时,它是相当可以接受的。

读了这篇文章后,我尝试了Atom,但结果对我来说有点痛苦;Atom似乎不能有效地缓存目录结构。每当我在树视图中展开一个文件夹时,UI会冻结一小段时间,2~3秒,可能是获取文件系统信息。是的,这是因为我正在使用远程文件系统。但是Sublime的处理效率更高,至少它不会在我每次展开文件夹时冻结,所以不那么痛苦。

我认为免费的Atom非常棒,我的故事很琐碎,有一天可能会被增强,但在这个时候它会对某些人有所帮助。

--

2014年8月26日添加

最近,我把我的笔记本电脑从2010年的Macbook Air换成了2013年的Macbook Pro 13。它的CPU速度可能快了4倍,性能也有了很大的增强。我想提一下我的观点是关于当你挂载远程文件系统的情况。(使用OS X Mavericks, Atom的最新版本,FUSE 2.7.3 / OSXFUSE 2.6.4 / sshfs 2.5.0,远程系统是Ubuntu服务器)最终,UI冻结变得相当短,但它仍然存在。具体来说,打开一个包含许多文件夹/文件的文件夹并对其进行索引需要一定的时间。此外,如果您展开一个充满文件的文件夹,它就会摇摇欲坠。(当折叠文件夹时,它不会)

根据@EliDuenisch的说法,这似乎不会发生在Linux Mint上。我不确定,但可能是因为操作系统之间的差异。当然,如果您在本地文件系统上工作,则完全不必关心这个问题。

Atom由Github创建,它包括“git感知”。这是我非常喜欢的功能:

enter image description here

它还突出显示了git树中根据提交状态改变了不同颜色的文件:

enter image description here

Atom仍处于测试阶段(在我写这篇文章时是v0.123),但它进展很快。比Sublime快多了。新版本每周发布一次,有时甚至在同一周发布几个版本。在它短暂的生命周期中,它比Sublime发布了更多的版本,后者需要几个月的时间来发布一个新功能或修复一个错误。以下是Atom自beta版发布以来所走过的道路的最新进展:

  1. Sublime的性能比Atom更好。因为它是用c++写的。另一方面,Atom是一个基于web的桌面应用程序,建立在Chromium之上,虽然他们把性能放在心上,但要达到同样的速度和响应速度真的很难,甚至不可能。去年7月,Atom开始使用React,它给了它一个不错的性能提升,但你仍然可以感受到差异。除此之外,如果Atom的性能问题不会把用户赶走,Sublime最好加快发布周期,重新调整用户体验,并考虑让更多的贡献者加入,因为这是Atom的优势所在。

  2. Atom的软件包生态系统也在快速增长,目前可能没有Sublime那么大,但我有一种感觉,随着GitHub的回归,它将继续以更快的速度增长。它可能拥有您所能想到的大多数IDE插件。目前的一个主要区别是它不能处理大于2MB的文件,所以要记住这一点。

  3. 首先你会注意到Sublime小地图不见了!除此之外,给人的第一印象是Atom看起来和Sublime几乎一样。我在博客文章中写了一个更深入的比较。

  4. 据我所知,没有简单直接的方法来移植你的Sublime配置、包等。

注意::

在Atom中,由于缓存系统的缺陷,在使用大文件时经常会发生数据丢失。

它已经被证明了无数次。

到目前为止还没有人指出的一个主要区别是(至少在Windows上)Atom不完全支持除US之外的其他键盘布局,这对一些人来说可能很重要。有一个bug报告,几百个帖子已经开放了一年多(https://github.com/atom/atom-keymap/issues/35)。

可能与选择编辑有关。