作为一个学生党,一开始使用atom时候并没有意识到atom一些小功能的巨大作用,直到自己实习参与了项目,才知道这些功能在一个项目中是能极大提高工作效率的开发利器
 
下面是一位不愿意透露其姓名的彭湖湾同学(其实就是我啦)的使用体会,我们姑且称之为W同学
 
1.通过关键字段全项目检索目标代码文件command+shift+F(mac)ctrl+shift+F(windows)
 
【场景一】:W同学在tower(一个团队协作工具)上接到了一个小任务,他要在公司运营的一个站点上站点模块里,对一个公告栏的bug进行修正
 
但这个模块并不是他写的,他并不熟悉。W同学一开始试图逐个打开文件并在里面寻找站点公告这一部分的文件代码,但这个文件嵌套得比较深,当W同学连续做了【打开目录A】--》【打开目录A中的目录AA】--》【打开文件夹AA中的文件AAA】--》【卧槽文件不在目录A!fuck!】--》【打开目录B】....同上 许多次之后,W同学意识到他所做的一切相当的傻逼,因为这导致找代码的时间占了他解决问题的90%的时间
 
 
【解决办法】W同学发现在目标代码里,有“站点公告”一行醒目的字段,并且他认为整个项目里只有目标文件含有这个字段,于是!他command + shift +F弹出一个搜索框,输入关键字段——“站内公告”
 
 
 
然后回车,atom开始在数K数W个文件的项目中通过“站内公告”字段寻找目标文件
 
 
 
点击该文件!于是在检索数K数W个文件后,W同学找到了这个SieNews文件。
 
2.通过关键字段在目标文件中定位目标代码:command+F(mac)ctrl+F(windows)
 
【场景二】:W同学通过方法一找到了目标文件,但现在又有了另外一个问题,在修改这个文件的时候他发现问题出在一个叫submit的函数上,但问题是这个文件的代码超过了1000行,虽然也不多,但是W同学想“偷个懒”,能不能直接定位找到那个函数呢?
 
【解决方法】:没错,和场景一一样,这次我们故技重施,敲command + F,弹出:
 
 
输入关键字Submit回车:
 
 
 
 
页面已经自动定位到了submit函数的位置!
 
诶,等等! 刚刚搜索框的上方提示“13 result found for Submit ”,这意味着,你搜索Submit时候,不仅是Submit函数,SubmitForm函数,SubmitText等等也会被纳入搜索的结果集,总共13个,那么Submit不在第一个搜索结果怎么办呢?——这时候你只要按回车,每按一次页面就会定位到下一个submit搜索结果里,看起来就像是“逐帧跳跃”
 
3.直接通过文件名全局搜索目标文件command+T(mac)ctrl+T(windows)
 
【场景三】W同学这次遇到了和场景一一样的问题,他想要搜索一个目标文件,但这次不一样的地方在于,他知道这个文件的名字是什么,这时候怎么全局搜索呢?
 
【解决方法】:command + T ,弹出
 
 
输入文件名,然后就能看到你想找的文件啦,然后只要点击一下,就打开了那个文件
 
4. 代码折叠让代码看起来更加简洁 alt+command+shift+{(mac)alt+ctrl+shift+{(windows)
 
【场景4】W同学接到一个任务——写一个响应式的静态页面,虽然没有复杂的逻辑在里面,但是仍然要写一大摞的函数。在做一些细节上的修改的时候,这看起来很杂乱无章。于是W同学尝试把每个代码块折叠,仅以函数名的形式展示
 
【解决方法】进入目标页面,敲 alt + command +shift + { ,(注意要依次按这四个键,不能同时按)看一下页面,所有代码块都被折叠了,只保留函数名在外头
 
 
【注意】:要撤销按alt + command +shift + }
【吐槽】四个键还真是很难按啊。。。
 
5.单个代码块折叠
 
【场景5】还是上面的那个问题,如果这个时候你只想要折叠一个代码块而不是所有代码块,这时候怎么办呢?
 
【解决办法】比如对这个函数,在光标移到函数名附近前它是这样的:
 
 
光标移到函数名附近后,出现了一些小箭头
 
 
点击const前的小箭头
 
 
代码块已被折叠
 
6.让导航上的文件在目录树中打开并且集中焦点
 
【场景6】W同学遇到有些烦人的问题,他在导航中打开了20+的页面,现在他想在目录树中找到这个文件。但是很不巧,这20个页面先后打开的过程中,目录树经过多次折叠,W同学已经无法直接在目录树中直接找到那个文件了
 
 
【解决方法】对在导航中的文件点击右键,在弹出的框里点击reveal in tree view
 
 
再回来看目录树,目标文件已经被打开
 
 
7.atom的其他快捷键操作
 
atom相关操作的快捷键还有非常多,感兴趣的同学可以来看简书上的这篇文章http://www.jianshu.com/p/e33f864981bb 对于其他的快捷键 我个人比较喜欢用的是其中两个快捷:
 
control + E移动到本行结束
control + A移动到本行开始
 
至于其他的一些快捷键,感觉对速度和效率的提升并不算大。当然了,具体如何操作,就是各人的爱好了
 

【Atom】在一个中/大型项目中,那些好用而强大的atom功能的更多相关文章

  1. jfinal想用到中大型项目中的项目经验分享

    jfinal 用在大项目中更加方便实用,节省无数的开发时间,代码量相对 SSH 减少 75% 至 90%,对于项目结构来说,简单提以下几点: 1:先分大模块,大模块内部可以根据划分的model分成子包 ...

  2. SLAM+语音机器人DIY系列:(二)ROS入门——8.理解roslaunch在大型项目中的作用

    摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...

  3. Egret的第三方库制作,以及在大型项目中的应用

    目录: 一 创建第三方库 二 TypeScript库 三 JavaScript库 四 第三方库制作在大型RPG中的实际应用 参考: 第三方库的使用方法 目标: 本文目的是将现有游戏的框架制作成第三方库 ...

  4. ASP.NET中彩票项目中的计算复式投注的注数的方法

    从别人做的项目中抽取出的代码:

  5. Eclipse 中 Java 项目中 .settings 文件夹作用

    今天工作时,因对 .settings 文件夹误操作,耗时 6 个多小时,才了解到原因就出在 .settings 文件夹.经查阅资料,对 .settings 做如下整理: 就如setting这个名字,就 ...

  6. VS2010中NET4项目中使用LOG4NET办法

    两年以前项目中是用的log4net.dll是net2.0环境下面的,最近在官网http://logging.apache.org/log4net/download_log4net.cgi找到了net4 ...

  7. Android中关于项目中对Thread的管理(不是线程池)

    背景 项目中对于一些并不复杂的耗时操作,比如计算,不频繁操作数据库等,因为没必要使用线程池,所以之前项目会直接使用new Thread的方式,时间一长,回头再看,原来new Thread之处已经很多了 ...

  8. mockjs 在项目中vue项目中使用

    一.为什么要使用mockjs 总结起来就是在后端接口没有开发完成之前,前端可以用已有的接口文档,在真实的请求上拦截ajax,并根据mockjs的mock数据的规则,模拟真实接口返回的数据,并将随机的模 ...

  9. 161010、在大型项目中组织CSS

    编写CSS容易. 编写可维护的CSS难. 这句话你之前可能听过100次了. 原因是CSS中的一切都默认为全局的.如果你是一个C程序员你就知道全局变量不好.如果你是任何一种程序员,你都知道隔离和可组合的 ...

随机推荐

  1. 使用webcollector爬虫技术获取网易云音乐全部歌曲

    最近在知乎上看到一个话题,说使用爬虫技术获取网易云音乐上的歌曲,甚至还包括付费的歌曲,哥瞬间心动了,这年头,好听的流行音乐或者经典老歌都开始收费了,只能听不能下载,着实很郁闷,现在机会来了,于是开始研 ...

  2. JAVA基础知识(1)

    1.JAVA的三大体系:JME(微缩版),JSE(标准版),JEE(企业版): 2.JAVA的三大核心机制:JAVA虚拟机,垃圾回收机制,代码安全性检测 3.java开发集JDK 4.java编译器j ...

  3. ZJOI2017 Day1

    私のZJOI Day1 2017-3-21 07:52:53 有人在暴力膜 苟-- 富贵 无相忘 ZJOI2017交流群 133135071 如果你足够厉害 如果你足够厉害 如果你足够厉害 其实完全可 ...

  4. Android Things教程:电气基础之直流电路理论

    译者注:由于本人水平有限,译文中难免会出现概念模糊.晦涩难懂,如果实在没心思看下去,请发挥你的学习能动性,到原文中自行翻译,感谢!!!点这里,直达英文各种长句的世界. 好了,既然你选择继续往下看,那就 ...

  5. JAVA循环依赖

    最近看到一个问题:如果有两个类A和B,A类中有一个B的对象b,B类中有一个A的对象a,那么如何解决这两个类的相互依赖关系呢? 示例代码1 public class Test{ public stati ...

  6. 用Caffe生成对抗样本

    同步自我的知乎专栏:https://zhuanlan.zhihu.com/p/26122612 上篇文章 瞎谈CNN:通过优化求解输入图像 - 知乎专栏 中提到过对抗样本,这篇算是针对对抗样本的一个小 ...

  7. js-面试题之字符串

    问题:输入两个字符串,从第一个字符串中删除第二个字符串中的所有字符串不可以使用replace<!--例如:输入"They are students" 和"aeiou ...

  8. php调试之路

    解析php中die(),exit(),return的区别 die()停止程序运行,输出内容exit是停止程序运行,不输出内容return是返回值die是遇到错误才停止exit是直接停止,并且不运行后续 ...

  9. Selenium测试专项二班隆重开班

    Selenium测试专项二班隆重开班 应广大测试技术人员要求,以及企业技术需求.Selenium提前一周开课了,只针对合作的每家企业提供1-2个参训名额.预计培训60人次.但报名人数却远远超出我们预期 ...

  10. 老李分享:jvm垃圾回收

    老李分享:jvm垃圾回收   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478 ...