原创时间:2016-01-31
更新时间:2016-06-05

在本节中将介绍Atom提供的更高级的使用技巧,通过这些技巧将会进一步提高你的代码编写效率

代码片段(Snippets)

Snippets是一种在代码中快捷插入代码块的方式,下面是维基百科中对Snippet的解释

片段(Snippet)是一个编程用语,指的是源代码、机器码、文本中可重复使用的小区块。通常它们是有正式定义的执行单位,以纳入更大的编程模块。片段经常用来明晰其他“凌乱”函式的功用,或尽量减少使用与其他函式共用的重复代码。
片段管理是某些文本编辑器、程式源代码编辑器、IDE、与相关软件的其中一项功能。其使得使用者能够在反复的编辑作业中保持和使用这些片段。

让我们通过一个实验来感受一下Snippets给我们带来的便利体验
1. 打开Atom编辑器
2. 使用Cmd+N新建一个文件
3. 使用Cmd+S保存文件,将文件名改为new.html
4. 在new.html中键入html四个字符,然后按tab键,这时你会发现html这段文本被扩展成了

<html><head><title></title></head><body></body>
</html>

并且光标被移到了<title>标签之间,方便你直接输入这个html文件的标题
5. 在<title>标签之间输入完成html页面标题以后,再次键入tab
你会发现光标又被移到了<body>标签下面了

这就是Snippets,它让你可以很方便地通过一个关键词来插入一段代码块,并且还能通过tab键在这段代码块的输入点之间移动光标,达到快速编码的目的
不同类型的文件有不同的Snippets,你可以通过快捷键Alt+Shift+S来列出当前文件所提供的所有的Snippets

自定义Snippets

Atom中有很多插件都提供了对某个特定文件中Snippets的支持,比如上面的htmlSnippets,就来自language-html插件
当然我们也可以定义自己的Snippets,这样可以在编码的过程中更加灵活地使用这个特性
在Atom的配置目录(如果是Linux系统,这个目录是~/.atom)下包含一个名为snippets.cson的文件,这个文件就负责保存我们的自定义Snippets.你可以通过主菜单Edit->Open Your Snippets来方便地打开这个文件.

Snippet配置格式

基本的Snippet的格式如下:

'.source.js':'console.log':'prefix': 'log''body': 'console.log(${1:"crash"});$2'

配置的第一行指定该Snippet应用的文件类型,获得文件类型字符串最简单的方式是查看该文件对应的语言插件的Scope项
举个例子,如果你想为Java文件添加一个Snippet项,你需要在设置页面查看language-java插件的插件信息,你可以看到插件信息的第一排Scope的值为source.java,因此Java文件的文件类型字符串就是一个点号.接上source.java(就像CSS的类选择器一样)

配置的第二行是Snippet的名字,最好取一看就能猜出该Snippet的作用的那种名字.
接下来的prefix指明触发该Snippet的关键字
body的值'console.log(${1:"crash"});$2'指明触发的Snippet的具体内容
其中每个接着数字的$表示一个插入项,当用户按tab时,光标会在设置的插入项之间移动

总结一下,上面的例子会给JavaScript文件添加一个logsnippet
当在js文件中输入log并按tab,它会被扩展为

console.log("crash");

"crash"字符串会被选中,因此如果直接输入其他字符就能改变"crash"这个字符串,当再次按下tab时,光标又会跳到这一行的末尾;后面.

配置多行的Snippet

多行的Snippet配置如下,就是用"""符号将一段body包起来

'.source.js':'if, else if, else':'prefix': 'ieie''body': """if (${1:true}) {$2} else if (${3:false}) {$4} else {$5}"""

Snippet的Snippet

当你在snippets.cson中配置Snippet时,可以使用snipsnipnsSnippet来插入新的Snippet片段

自动补全

Atom自带了基本的自动补全功能

默认情况下Atom会根据当前文档的内容来自动补全
如果你想要更多的选项,可以在autocomplete-plus插件设置处设置.比如可以设置该插件通过所有打开的文档来补全(而不仅仅是当前文档)

代码折叠

代码折叠在查看或编写代码时非常有用,Atom同样也支持这个功能
你可以通过点击行号旁边的箭头或使用快捷键Cmd+Alt+[Cmd+Alt+]来折叠或展开代码

另外你还可以通过Cmd+Alt+Shift+[Cmd+Alt+Shift+]来折叠或展开全部代码
通过Cmd+K Cmd+Num来指定折叠哪一层缩进(Num指定缩进的深度)
通过Cmd+Ctrl+Alt+FFold Selection命令来折叠任意选中的代码段

分栏


你可以使用Cmd+K 方向键来创建新的分栏,其中方向键的方向决定了分栏的方式,比如Cmd+K ↓就会创建一个新的水平分栏
当已经存在分栏时,通过Cmd+K Cmd+方向键来在分栏间切换光标焦点.
如果你想关闭一个分栏,使用Cmd+W

代码类型

Atom会自动识别你当前编辑的文件的类型
如果识别失败,Atom会将此文件当做普通的文本文档来处理
在这种情况下我们可以使用Ctrl+Shift+L来手动指定或改变当前文件的类型

Atom编辑器入门到精通(四) Atom使用进阶相关推荐

  1. C4D致富经典入门到精通(四)

    C4D中的Nurbs建模 C4D基础界面的介绍与常用快捷键:  C4D致富经典入门到精通(一) C4D父子关系的理解与创建参数几何体与可编辑对象: C4D致富经典入门到精通(二) C4D样条曲线创建  ...

  2. python语法基础语法_Python基本语法[二],python入门到精通[四]

    在上一篇博客Python基本语法,python入门到精通[二]已经为大家简单介绍了一下python的基本语法,上一篇博客的基本语法只是一个预览版的,目的是让大家对python的基本语法有个大概的了解. ...

  3. Python基本语法[二],python入门到精通[四] (转)

    写在前面 python你不去认识它,可能没什么,一旦你认识了它,你就会爱上它 回到顶部 v正文开始:Python基本语法 1.定义常量: 之所以上篇博客介绍了定义变量没有一起介绍定义常量,是因为Pyt ...

  4. Drf从入门到精通四(Drf请求与响应、Drf能够解析的请求编码与响应编码、Drf视图、Drf视图基类)

    文章目录 一.Drf请求与响应 1.Request类和Response类 2.Drf能够解析的请求编码与相应编码 二.Drf视图组件 四.Drf视图基类 1.基于APIView写5个接口 2.基于Ge ...

  5. redis 通过aof日志恢复_Redis从入门到精通(四、Redis的持久化和数据备份与恢复)

    本文将对Redis的两种持久化方式做详细的介绍,从配置,机制,优缺点几方面讲起 Redis持久化简介 Redis提供了两种持久化的选项,一种是快照文件(snapshotting,RDB),它会基于某个 ...

  6. 打造前端 Deepin Linux 工作环境——安装配置 atom 编辑器

    打造前端 Deepin Linux 工作环境--安装配置 atom 编辑器 好,我个人推荐大家使用 atom 编辑器,第一是免费,第二是好看,第三是好用. 安装 atom 编辑器 我们输入 apt-c ...

  7. C4D致富经典入门到精通(八)

    材质与纹理 C4D基础界面的介绍与常用快捷键:  C4D致富经典入门到精通(一) C4D父子关系的理解与创建参数几何体与可编辑对象: C4D致富经典入门到精通(二) C4D样条曲线创建 :   C4D ...

  8. C4D致富经典入门到精通(十)

    C4D中渲染操作与AE交互 C4D基础界面的介绍与常用快捷键:  C4D致富经典入门到精通(一) C4D父子关系的理解与创建参数几何体与可编辑对象: C4D致富经典入门到精通(二) C4D样条曲线创建 ...

  9. C4D致富经典入门到精通(三)

    C4D样条曲线创建 C4D基础界面的介绍与常用快捷键:  C4D致富经典入门到精通(一) C4D父子关系的理解与创建参数几何体与可编辑对象: C4D致富经典入门到精通(二) C4D样条曲线创建 :  ...

最新文章

  1. 乔布斯 18 岁求职信拍卖价 22.24 万美元,值吗?
  2. android 下拉窗帘,Android 窗帘(Curtain)效果二之波浪式动态扭曲效果
  3. HarmonyOS之JS/Java跨语言调试
  4. 【jQuery笔记Part2】02-jQuery展开收起动画帷幔效果案例下拉菜单案例显示隐藏更多案例折叠菜单案例
  5. python3.7安装包下载_Python 3.7下载 Python 3.7 for win32 (Python编程开发工具)官方安装版 下载-脚本之家...
  6. 操作系统linux配置php,操作系统--Linux的详细介绍
  7. 火灾原来离我们那么近
  8. 1千条数据平均分配给15人_母狗一胎生下15只小狗,差点破纪录,1年后再相聚的场景让人泪目...
  9. shapefile(.shp)空间数据格式详细说明
  10. 华为鸿蒙os logo,华为鸿蒙 OS Logo :Powered by HarmonyOS
  11. 7-12 愿天下有情人都是失散多年的兄妹 (25分)
  12. 折弯机的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  13. JAVA把日期转换为年月日_在Java中将每年的日期转换为每月的日期
  14. 渗透利器BurpSuite简介
  15. PPT批量删除相同位置图片(非母版)的野路子
  16. 使用vue echarts 制作地图map
  17. sql server数据库错误数据恢复(数据库连接失效,无法附加查询)
  18. 扒开ARM中断控制器的底裤来看看!
  19. win10任务栏透明—注册表方法【新增半透明】
  20. 华为机试HJ18 识别有效的IP地址和掩码并进行分类统计

热门文章

  1. 基追踪算法 matlab,什么是基追踪算法?基于改进基追踪方法的信号去噪 - 全文
  2. MATLAB信号处理——分解信号,双谱重构
  3. 到底什么时候该跳槽?
  4. 「docker实战篇」python的docker-抖音appium模拟滑动操作(22)
  5. 从5G+AI到ChatGPT火爆全网,且有望带来5G消息的业务重构!
  6. 洛谷P1486 [NOI2004] 郁闷的出纳员 题解
  7. Mac Git 如何设置ssh key
  8. 蛇形印刷天线设计实战
  9. js获取播放器播放时间和停止播放
  10. Helvetica系列字体