刚学js用atom js写得,内容如下

ATOM 同 Vim/Emacs/Sublime 的深度比较
发表于 日 18:00 | Hits: 778
用过不少编辑器:UltraEdit / EditPlus / (G) Vim / GEdit / NotePad++ / TextMate / ProgrammerPad / Sublime 。确实是用他们写过代码的,用在工作上的。而 VSC / Emacs 只是体验了一下基本使用方法,算不上真的用。用下来的结论是:Atom 比 Vim 更 Vim,比 Emacs 更 Emacs,同样,比 Sublime 更 Sublime。
Atom 唯一的槽点,就是“卡”,不过那是去年的情况了,1.0以后版本性能数次大提升,虽然比起sublime/vsc之类不算流畅,但是同时打开编辑若干数千行的文件,一点压力没有。如今让你感觉慢的地方主要是启动loading时间(然而也大大短于eclipse, idea),使用的时候我并没有觉得它比其他编辑器慢再哪里。而文本编辑器的快,保障了基础使用的情况下,更重要的是“让你工作更快更有效率”。下面说几处为什么 Atom比其他都更有效率:
兼容VIM模式
这无疑团结了一大班 Vim过来的用户,Sublime虽然也兼容VIM模式,但是Sublime再 mac下面的vim模式有bug,我习惯用 hjkl来移动光标,sublime再mac下hjkl移动有问题,且我习惯CTRL_[来返回NORMAL模式,手指不离开主键盘区,而sublime的vim模式只支持ESC返回,加上sublime的作者经常神秘消失,最稳定的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. 批量操作:
比如要给下面代码每行后面加一个分号:
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这个软件的简陋的人带来了福音。
“同样动作重复300次,肌肉就会有记忆,而一个动作重复600次,脊椎就会有记忆”
编辑器就是关于脊柱记忆的东西,所以多投入一些时间去了解你使用的编辑器,掌握他们的各种快捷操作和高级功能是一个能让你事半功倍的好主意。
格斗游戏玩的好的人来说,下等高手凭借熟练,中等高手凭借反应,上等高手凭借意识,更熟练的掌握你的编辑器,让更多日常工作固化成记忆记录再你的脊柱上,使用的时候,脊柱这枚协处理器就能完成代码编写,一个操作,刚一想到,脊柱就自动执行出来了,小脑腾出空间来组织判断,大脑腾出空间来思考更重要的东西,就像你走路,你不用思考迈腿那么自然,别人一拳过来,你潜意识一动,一连串动作就出去了,一只飞蛾飞过来,你潜意识的闭上眼睛保护眼部,这就是脊柱记忆,如果还要经过大脑绕一圈,反应慢不说,大脑这颗cpu都用在这些琐事上了,思考的时间自然少了不少。
所以从内到外的了解你的编辑器,并且熟练掌握他们,是对提你高工作效率最好的投资,Atom的全平台支持,开放源代码,深度可定制等三个特点,比起其他闭源的,平台支持不全的,扩展少的编辑器来说能让你有不同层面的了解机会,同时为你提供各种高级使用技巧和捷径的可能。
深度可定制系统
先前给vim写过插件,给sublime写过插件,如今给Atom写过插件,横向对比下来,几个结论:
插件能做事情多少:Atom & Vim && sublime
插件开发学习门槛:Vim & Atom & sublime
插件开发文档丰富:Atom & sublime && Vim
Atom 的定制化程度远远高过sublime之类(不用实际看法,看看双方开发文档即可),直追 Vim / Emacs,sublime的所谓定制无外乎改改json,插件能做的事情相当有限。
Atom 的定制化系统主要有三方面:
1. 粒度细:
设计之初就考虑的事情,方方面面都能定制,见官方文档,以及插件:vim-mode,minimap (稍微了解下这两个类似的功能再 Atom 和 sublime的实现就能知道 sublime被甩了多少条街了)。可以细粒度的控制编辑器内所有行为,小到移动一下光标,删除当前一个字符,大到打开一个面板,比如 “core:more-up” 可以向上移动一行光标,“window:focus-pane-on-left” 可以把焦点设置到左边的面板,atom内核和大量第一方第三方packages 都是以命令的方式把基础功能提供出来,你可以随意互相调用或者设置热键。
除去命令外,API层面,几乎每个部件每个像素点都可控,比如这样的插件你永远无法再 Vim / Emacs / Sublime 下面见得到:activate-power-mode。
2. 灵活度高:
由于使用 javascript/coffee进行开发,但 javascript/coffee是属于即便你没写过他们,读都能读得懂,VimScript就不一样了,虽然也能做相同的事情,但实话实说,晦涩难写,比如我要取得当前文件的路径和文件名,在 VimScript里面需要这么写:
let path = expand(‘%:p:h’)
let name = expand(‘%:t:r’)
let name = expand(‘%&‘)
而在 Atom 里我们用atom自己的功能直接取出路径来,然后用node.js的path模块进行切割:
var fullpath =atom.workspace.getActiveTextEditor().getPath();
var filename = path.basename(fullpath);
var filepath = path.dirname(fullpath);
就问大家一下?哪段代码更友好一看就明白?你更愿意用按照哪段代码进行插件开发?是上面的VimScript?还是下面的 javascript ?
结论是很清晰的,Atom的 javascript开发插件更浅显易懂,即便没文档,你看看别人怎么写的自己也会写,同时灵活性大大高于VmScript,各种事件处理回调,javascript天生擅长做这些事情,还有第二行,第三行,我们用到了 node.js 的 path模块,进行文件路径切割。这样的写法,再VimScript 里面基本是无法想象的。
Vim是强大,但是毕竟是30年前的东西了,即便最熟练的 Vimer 也都承认 VimScript 的晦涩难懂,阻碍了很多人为其开发插件,而学习给Atom开发插件,只需要学习javascript,学习了javascript你可以用在很多地方。不像VimScript那样只能用在Vim里面,而正式因为其晦涩,VimScript都纷纷支持内嵌 python的写法:
python && EOF
import random
print random.randint(0,10)
VimScript中 Python等动态的支持正是说明其开发维护者也承认 VimScript本身的古老,对比现代编程语言已经有些格格不入了,才会去支持Python内嵌这样的写法,然后大量的工作还是需要再Python之外完成,同时,并不是所有平台自带的Vim都支持python,除了mac外,所有debian / ubuntu 发行版自带的Vim都是不支持 Python的。导致你想写一个通用的扩展还得判断下是否 has(‘python’) 没有的话老老实实用 VimScript 去实现它,这不是折磨人么?
Sublime里面可以用原生 Python 写扩展,比 VimScript爽,但是 sublime 的插件能做的事情还不及VimScript的一半,所以怎么能指望他们能写出高端的功能来呢?
3. 扩展性强:
Atom的内核 Electron (原来的 Atom-shell)可以理解成:Chromium + Node.JS,而整个Atom的界面,你可以理解成就是一颗 HTML 的 DOM 树结构,这意味着你可以这样:
var div = document.createElement(“div”);
div.innerText = “abc”;
atom.workspace.addBottomPanel(div);
就可以简单的在 atom 里面增加一个显示对象,这意味着再给div加个 html的 onclick就可以实现GUI交互,界面上的对象随便写点html代码就可以控制效果,意味着你可以使用 jQuery 来为atom增加新面板,意味着你只需要写一个简单的 .css 文件就可以把 Atom 整个编辑器的外观给修改了。这在 Vim/Emacs 中是几乎不可想象的事情,sublime基本就别提了。
大量的前端开发技术和 Node.JS 基础模块供你任意使用,正是由于近年 Chromium / node.js 系列技术的成熟,和 Atom / Visual Studio Code 这类基于前端技术的客户端软件的成功,让我看到了客户端(桌面+移动)软件开发的新方向。
做VIM/Emacs不能做的事情
Vim/Emacs过去给人的映像是:几乎能做任何事情,确实如此,但毕竟是二三十年前的东西了,而他们一直坚挺到现在一方面是操作便利,更重要的是这么长时间还没有出现一款又开源又具备同样操作便利性和可扩展性的编辑器,所以Vimer, Emacser 们最乐意展示给别人看的就是他们又安装了什么插件,急于展示可以把 Vim / Emacs 装扮成了一个多像 IDE 的东西,而今天这个“可以做任何事情”的高度可定制特性已经被Atom所吸收并完全超越,就像 Atom 的开发blog:“ Introducing Atom” 上说的一样,对易用性和可展性 “决不妥协” :
We think we can do better. Our goal is a zero-compromise combination of hackability and usability: an editor that will be welcoming to an elementary school student on their first day learning to code, but also a tool they won’t outgrow as they develop into seasoned hackers.
抛开易用性的这个 Atom 的明显优势不说,前面其实已经说了很多 Atom 比 Vim/Emacs 更灵活强大的地方,可能有些人还有疑惑,不是说 Emacs “没有不能做的事情” 么?你看 Atom的面板里面可以嵌入一个 Terminal,Vim/Emacs一样可以嵌入啊,为何还说 Atom 比它强啊?
举个最简单的例子,minimap,就是 sublime那种大家喜欢的文档缩略图,这个现代编辑器必备的功能,谁能用 Vim/Emacs 实现一下看看?Atom 可以衍生出 Visual Studio Code 这样漂亮的编辑器,Vim/Emacs能衍生么?Atom可以随便用各种先进的前端技术,不当可以嵌 Terminal我甚至可以再 Atom 嵌入一个 js版本的 DOSBOX 玩老游戏《命令与征服》:
https://archive.org/details/softwarelibrary_msdos_games
Play DOS games online
当然这样并没有任何卯用,但是如果我再 Atom里面内嵌一个浏览器,方便的实时预览html/css的效果呢?或者 Atom 里面内嵌一个 Markdown Previewer ,实时查看 Markdown 的效果呢?请问 Vim/Emacs 里怎么实现法?
只想说明,如今,Atom 作为 Vim/Emacs 的继承者和超越者出现了,所以社区对 Atom 的反应也是热烈的,看看下面一组数据,截止今天(日),Atom共有扩展插件 3500+ 个,发布不到两年的时间,这是什么概念呢?
Sublime的插件(Stats – Package Control)大概 3500+个,但是sublime发布了5年的时间。
Emacs 的插件大概有2900个,可Emacs发布到今天已经过去 25+年的时间。
Vim 的各种插件虽然有9000个,但是Vi/Vim系列的历史长达 30+年,是atom的15倍。
这就叫社区的活跃度的区别。
再谈性能优化
很多人错误的觉得 Atom慢是因为使用了 JavaScript/Coffee 等 Web 技术,所以先天慢,其实这是个误区,即便使用 Web 技术它也还能快很多,同时再慢可以往C++层的 Electron 挪啊,这也是这几个版本优化的一些方向,基于 Atom 开发的 Visual Studio Code 可以那么流畅, Atom 性能优化空间还很大,了不起多参考下自己的儿子,同样开源的 Visual Studio Code怎么做的。
同时 Atom编辑器1.0版本以来性能得到了很大的提升,主要是两个方面,一方面是js层的各种渲染优化,控件优化,延迟绘制,延迟加载,只绘制当前需要的东西等,另外一方面是将一些核心数据结构移动到 Electron 的 C++层,如今1.54版本性能较去年版本已经有了本质区别,运行时加载是慢些(但也比eclipse快很多),实际使用并没觉得不如别的编辑器,况且,js层的优化和C层的优化未来还有很大的空间可以进步。
不过我不太喜欢 Visual Studio Code 使用 Typed Script 进行开发,用点标准技术不行么,Atom使用 JavaScript/Coffee 写的多爽,如今 Atom 正在准备慢慢的切换到 JavaScript 的新标准 ES6 上。其次 Visual Studio Code 的社区如今还不是特别活跃,扩展也少,发布一年多只有差不多300+个扩展,远不如 Atom 的情况,因此暂时不打算深入展开 Visual Studio Code来说了。
再说开源免费
UltraEdit 单用户版本价格: 79 美刀
UltraEdit 服务器版价格: 229 美刀(多人登录同一台服务器的桌面使用),企业版更贵
EditPlus 单用户版价格: 35 美刀,而且还只有windows版本,
Sublime 单用户版价格:70 美刀
TextMate 单用户版价格:48 欧元,而且还只有mac版本。
这些都是钱啊,可能你会说可以免费试用或者破解啊,是的个人可以,但正常来说sublime这些试用指不能拿来搞生产不能拿来工作的,个人你用用可以,但国外人家守规矩,不会乱用,这意味着失去一大批为其开发扩展的国外开发者,同时站在公司考虑IT方案的角度,免费试用和破解将来都是潜在的麻烦,现在上百人的公司微软都会来收windows的钱了,版权问题越来越严肃,你得把这笔潜在费用考虑进去,同时这些闭源的或者单平台的东西,并不值得再上面花费过多精力和投资。
抛开扩展性问题和价格问题,我们再来看各个热门的免费编辑器的试用情况:
Notepad++:免费,开源,只能运行于windows
PSPad:免费,不开源,只能运行再 Windows
Gedit:免费,开源,只能跑再 GNome下,Ubuntu用用,Windows/mac版本简直是残缺的。
Programmer’s Notepad : 免费开源,只能跑 Windows
Notepad2:免费bu不开源,只能跑 Windows
这些曾经出现过得收费的或者免费的编辑器,再某些时间段内都曾经流行过,如今他们都统统完成了自己的历史使命,新的一页可以翻开了。终端环境的话确实 Vim/Emacs 继续下去,但非桌面环境的话,q
Atom使用答疑
怎么取消末尾空白行自动剔除?
— 禁用自带 whitespace 插件即可。
怎么将TAB从空格改为真TAB?
— 设置-&Tab Mode 从 Soft 改为 Hard,同时将长度设置为4
如何取消括号补全?
— 设置-&Packages-&禁用 Bracket 插件即可。
我从 sublime 过来,如何增加文档缩略图 minimap?
— 设置-&Install-&安装 MiniMap 即可
如何启用Vim模式?
— 设置-&Install-&VimMode
如何禁止按回车实现自动补全(有时想换行但是变成使用补全了)?
— 设置-&Packages-&Autocomplete Plus-&将Tab+Enter改为Tab only
我是 C/C++ 开发者,如何一键编译一键执行代码?
— 安利下我自己写的插件:Atom有什么优秀插件? – 韦易笑的回答
我是前端开发者,用惯了 Sublime的 Emmet,Atom下怎么办?
— 也有 Emmet。
国内有时无法自动下载安装 package怎么办?
— 等三五分钟重试,有些cdn的ip (amazon) 被gfw掉了,或者全局代理翻墙,或者直接从github上clone到 ~/.atom/packages下手动安装即可。
。。。。。。
VIM移植攻略
我在 Vim插入模式下习惯 inoremap C-HJKL来上下左右移动,十分方便,可到了Atom里该怎么办?
— File -& Open Your Keymap,按照注释设置你的新的键位,如:’alt-j’: ‘core:move-down’。
我再 Vim下面喜欢设置各种indent,各种smart tab,tab expand再Atom里面怎么设置?
— Settings 第一个面板就有。
我再 Vim 下面喜欢把大写的 HJKL 设置成 5h, 5j, 5k, 5l,这样按住shift实现快速移动,请问Atom怎么设置?
— 你可能需要自己写点js代码了,不过这在vim里面也是不对的用法,你把J这个粘合两行的命令给覆盖了,行间移动我喜欢用vim的CTRL_U, CTRL_D来滚动半页,行内快速移动,我喜欢5w,或者直接fx。
我再 Vim中喜欢使用 Taglist/Tagbar 来进行索引,来到 Atom 有没有类似的插件?
— 请使用:symbols-tree-view 代替之,而且不依赖ctags,实时分析当前文件内容,超级漂亮,使用ctrl-alt-o切换是否显示。其实内置功能 CMD-R (osx的键位,win下查一下,内置插件symbol-view)可以查看当前代码的函数列表,点击也可以跳转过去,同样也不依赖ctags,轻量级使用的话,内置这个足够了。
我从 Vim过来,如何实现Vim的 YouCompleteMe超级补全插件?
— 安装 autocomplete-clang 或者 YouCompleteMe 插件即可。不过 Atom 本身内置的补全就已经很强大了,你可以先试试,况且Atom用这些东西还不像vim用 YCM那样还需要编译个带python的版本,还要编译clang一半天那么麻烦。
我在 Vim中喜欢用 vim-multiply-cursors 做批量操作,Atom怎么弄?
— multi-cursor-plus
我再 Vim中写python,过来 Atom 下找不到顺手的工具了怎么办?
— 你可以查看:autocomplete-python
。。。。。
这段会不断更新补充,关于各种编辑器过来的人的习惯,喜欢折腾的Vim用户,Atom给大家足够折腾的空间,用不着刻意把 Atom 装扮成一个100%的vim,随着时间的推移用 Atom的方式使用Atom能让你获得更高的效率。
简单用一下的话,这样就可以了:
左边是 Atom再带的 Tree View,可以用来管理项目或者直接管理文件,右边是taglist/tagbar 的代替者:symbol-tree-view,中间文件分两边同时编辑两个文件,上面分tab,按cmd+数字直接跳转,左右两边panel设置快捷键组合切换,下面的Atom Shell Commands调用编译器编译工程或者单个项目,编译器的错误输出可以根据正则匹配出对应出错的文件名和行号,快速跳转。
用了autocomplete-python插件来补全python,其他语言的话,系统自带的autocomplete-plus以经足够我用了,十分喜欢YCM的人,autocomplete-clang可以满足你们。
注:Atom是通用编辑器,真的写java我还是会用eclipse这种针对语言级别的IDE来调试安卓或者管理模拟器,但是其他语言,我现在都完全切换Atom了。
评价列表(0)在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
请问atom有没有关于javascript的自动补全?css自动补全是有的,初学javascript,很容易把方法名写错,如果有自动补全会很方便。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
找到一个atom-ternjs的包,但是好像并不能满足我的需求
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
autocomplete-js-import这个包应该可以帮助你。
对于Atom的包,可以到Atom社区(
)上查找,而且里面还有很多关于Atom的讨论,对于学习和合理利用Atom有很大的帮助。
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:Posts - 807,
Articles - 0,
Comments - 17
17:29 by GarfieldEr007, ... 阅读,
若是C / C++的话,我推荐ATOM的这几个插件主要用于代码补全,实时语法检测,以及代码格式调整,其实就是Clang的那一套。当然你也可以使用linter-gcc,来使用gcc错误提示。而在编辑器中,我喜欢使用终端,那么有一个还不错的插件使用效果:若是编写一个小的C / C++ 程序来进行学习练习等,这样的组合我觉得已经足够了,不必开IDE了。
&&&&&&&&&&&&&
56赞同反对
前WebStorm用户,说几个我自己感觉最有用的插件:
这是Tern项目的Atom插件,提供了了比较精确的代码补全功能,不止是匹配输入过的关键字,还可以提示ECMAScript、DOM/BOM、NodeJS的方法和属性,也能自动分析依赖的模块,给出补全提示,这样Atom用起来就有点IDE的感觉了。
atom-ternjs还有一些其他功能,比如Find-definition,不过这个功能有更好的插件hyperclick。
hyperclick是facebook给nuclide写的插件,可以跳转到变量定义的地方,也能识别import/require,点击模块名可以跳转到模块的内部。
需要配合插件。
有了hyperclick之后,Atom就更像IDE了。
linter-eslint依赖linter,安装之后就可以按照.eslintrc文件里面配置校验JS了。
高亮所有和当前选中单词一样的单词,IDE标配。
和上面的功能类似,不同之处是可以同时高亮多处非选中的单词,在读代码时挺有用。
和vim下的一款mark插件完全一致,作者以前肯定是vim用户,不信看下面
和上面的插件是同一个作者,比vim-mode更好用,非常完美。
hax大神维护的Elastic tabstops插件,五星好评。
路径补全插件,IDE标配
类似VIM下面的easymotion,最快的移动光标的方式。
&&&&&&&&&&&&&
58赞同反对
老王卖瓜,自卖自夸,Atom 比较方便的地方是可以用 javascript/coffee 给 Atom写插件,并且写起来很简单,我刚按说明给 Atom 写了一个插件:用户自定义 Shell 命令,类似 NotePad++ 中的 "Run Commands&,EditPlus/UltraEdit里面的"User Tool",以及 GEdit 中的 "External Tool" 和 TextMate 里的 &Shell Command&。1. 用户可以自定义工具,并且配置到 Atom 中,比如一键调用编译器,一键运行,2. 输出结果会显示再底部的 bottom panel 中3. 点击错误输出可以跳转到对应有错误的文件上去4. 自定义正则表达式匹配错误输出中包含的文件名和行号。5. 全平台支持,再 Mac/Ubuntu/Windows 下充分的测试过。初始化再你的用户配置中(Atom File-&Open Your Config或者 ~/.atom/config.cson),写入类似:
"atom-shell-commands":
commands: [
name: "compile"
command: "d:/dev/mingw/bin/gcc"
arguments: [
"{FileName}"
"{FileNameNoExt}.exe"
cwd: "{FileDir}"
keymap: 'ctrl-2'
的配置,就会创建一条名为 "atom-shell-commands:compile" 的命令,你可以通过 command palette来运行它或者使用快捷键 ctrl-2来直接运行。同时再 Atom 的 packages 目录下面的"Atom Shell Commands" 目录项下面也会多出一个名为&compile& 的命令。
每条命令可以通过如下字段来表示:
name: 名字(必填)
command: 可执行路径(必填)
arguments: 参数(选填)
options: 扩展参数用来配置当前工作路径,文件是否保存,快捷键,环境变量等 (选填)
所有配置支持如下宏:
{FileName} 当前正在编辑的文件名(不包括路径)
{FilePath} 包含全路径的文件名
{FileNameNoExt} 没有路径和扩展名的文件名
{FileExt} 文件扩展名
{FileDir} 文件路径
{ProjectDir} 工程路径(如果有工程的话)
{ProjectRel} 文件相对于工程的路径(如果有工程的话)
{CurRow} 当前行
{CurCol} 当前列
{CurLineText} 当前行的文本
{CurSelected} 当前选中文本
有了这些宏,你几乎可以做任何事情,比如到工程目录下调用make或者cmake,或者仅仅编译单个文件不必理会负责的工程,或者调用 ant去跑 build.xml,或者调用 java来运行编译出来的.class,调用python来运行当前脚本,或者当前目录下执行下 grep 关键字并且把grep的结果显示再下面的 bottom panel,打开帮助文档跳转到你选中的API上,或者对当前文件调用 svn diff,把结果输出到 bottom panel。
比如:调用 gcc / cl 一键调用编译功能
比如:一键运行比如:一键运行(打开独立窗口运行)具体见项目主页:更多如何更好使用 Atom的内容见:--
&&&&&&&&&&&&&
24赞同反对
自我推销下:&&少数正确实现了&&的编辑器插件。BTW,在本周日(日)的上,我会分享《程序员的圣战之TAB vs SPACE》并顺带介绍 Elastic tabstops。演讲 slide:
&&&&&&&&&&&&&
39赞同反对
正则表达式图形化插件,只要把鼠标放上去直接自动图形显示。
&&&&&&&&&&&&&
泻药。&装逼一流&写HTML&图标很漂亮&本地缓存文件&svn插件&颜色可视化
&&&&&&&&&&&&&
77赞同反对
我是 atom 深度用户(1000+小时使用者),这个答案是试着想把 atom 玩6的前端开发者的福音,满满干货原文在我博客里面(博客里支持 md 渲染,看我博客也要记得点赞,收藏也要点赞)我是写了一个系列的 atom tips&其中包括
常用操作()
web 开发常用插件()
我这里把 web 开发常用插件 贴到这里,# atom tips(2):web 开发常用插件## 使用 package 的步骤0. search it in setting pane install option1. read readme(important,虽然大部分插件看名字就知道用途,但 readme 会写更详细的用途,一样的东西,不同人用的效果可以非常不同)2. think whether you need it, if yes install it3. set its setting (if it has setting,think how you want use it,非常重要,这步就是根据你的需求定制你的插件)4. run it(or test it feature)## 提示讲真,atom 的 packages 非常非常的棒,下载、使用、发布都非常简单,无论是用别人的 amazing 的 package,还是自己动手弄一个 useful package,都很方便。不过,**工具的意义在于使用,而不是在于炫技**,我这里写的是我平常用到的第三方插件,不同的人群当然有不同的需求,我的插件 osx 下都很表现不错,win 下不能保证,我也是不断试错、思考、更新,才得到现在的插件列表,每一个插件我都用过不止10次,有的插件甚至每天都用10次(比如我自己写的那个,逃),所以大家也应该选取对自己自己常用的,自己用得好才是真的好。而且即便使用成本低,但是也只有用心去用才能用的好,用的优雅。## packages### markdown& atom 现在已经成为我的最佳 markdown 编辑器,有了下面的插件后,使用体验,简直太棒了。- markdown-preview-plus@2.2.2- markdown-assistant@0.1.0(Upload images from the clipboard automatically, win10 下失败,osx 完美成功,粘贴图片直接转成 md 文本,不要太棒,优雅的没朋友)- qiniu-uploader@0.0.3- markdown-writer@2.3.2(在设置里面设置一下,就拥有了正常 md 编辑器的编辑 md 的各种快捷键 例如 cmd + b, cmd + shift + k 插入链接,而且更棒非常值得一试)- markdown-toc@0.4.1### autocomplete- atom-ternjs@0.13.2(js 最佳补全插件)- simplyy-snippets@0.4.4(我写的 web 前端代码补全插件,详情见)- css-snippets@0.9.0- autocomplete-html-entities@0.1.0- tag@0.3.0- autocomplete-modules@1.4.1### indent- guess-indent@0.1.0- resize-indent@0.2.1### code hint and linter- linter@1.11.3- jshint@1.8.3- jsonlint@1.1.2- csslint@1.1.4- htmlhint@1.1.3### ui- activate-power-mode@0.4.1(虽然很炫酷,但是我不用)- file-icons@1.6.18(让你拥有高颜值的文件图标)- pigments 代码颜色可视化- foldername-tabs@0.1.11- highlight-column@0.5.1- highlight-selected@0.11.2- indent-guide-improved@1.4.5- minimap@4.21.0- fold-comments@0.6.0- fold-functions@0.4.3### git project- merge-conflicts@1.3.7(amazing ,再也不怕 git 的合并冲突了,分分钟解决 conflicts)- git-projects@1.17.0### language- language-SCSS@0.4.0- language-vue@0.9.0- react@0.14.1### other tools- atom-beautify@0.28.26(格式化代码)- line-count@0.5.0- change-case@0.6.0(将代码文本更改风格,比如 testCode =& TEST_CODE)- todo-show@1.4.0- open-html-in-browser@0.1.0- pretty-json@0.4.1### Tree-view- tree-view-copy-relative-path@1.0.0- copy-filename@1.0.1- tree-view-git-status@0.2.3- chary-tree-view@0.2.3(Tree-view responds to only double-click to avoid opening a large file accidentally.)### amazing useful- terminal-plus(不推荐 win 用)osx 下效果图:
&&&&&&&&&&&&&
15赞同反对
最新更新的版本名字改成了 markdown-preview-enhanced 了,新的网址是&&。并且添加了很多新的功能。=========== 华丽的分割线 =========================如果是写 Markdown 的话,我推荐一款我编写的插件,名字叫做 atom-markdown-katex。比编辑器自带的 Markdown Preview 增添了很多功能。例如:1,左边的编辑器和右边的预览 滑动是同步的。滑右边预览左边也会动。2,支持数学表达式3,可以很好的生成 html 和 pdf4,还有很多当然现在可能还存在很多 bug 啦,如果有人用的话我会很高兴 ;)发现 bug 的话请上 github 给我提 issue。啦啦啦
&&&&&&&&&&&&&
&自动格式化&颜色高亮
&&&&&&&&&&&&&
&两位推荐的插件迅速提升 Atom 的战斗力,很受用。在刚使用 Atom 的时候会遇到两个痛点:1、无法单纯使用键盘操作完成「新建文件」2、迁移电脑时,配置备份后来遇到这两个插件,很好解决我的问题。通过 Cmd-Alt-O/Ctrl-Alt-O 快速的打开文件或新建文件,同时支持路径补全。在 Sync Settings 的设置中,配置你个人的 Github access token。然后在 Atom Command Palette 中输入 sync-settings:backup,自动将 Atom 的配置备份在 gist 中。比如我个人的配置:
from:&/question/}

我要回帖

更多关于 atom ternjs 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信