Atom编辑器入门到精通(四) Atom使用进阶
在本节中将介绍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的支持,比如上面的html
Snippets,就来自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文件添加一个log
snippet
当在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时,可以使用snip
和snipns
Snippet来插入新的Snippet片段
自动补全
Atom自带了基本的自动补全功能
默认情况下Atom会根据当前文档的内容来自动补全
如果你想要更多的选项,可以在autocomplete-plus
插件设置处设置.比如可以设置该插件通过所有打开的文档来补全(而不仅仅是当前文档)
代码折叠
代码折叠在查看或编写代码时非常有用,Atom同样也支持这个功能
你可以通过点击行号旁边的箭头或使用快捷键Cmd+Alt+[
和Cmd+Alt+]
来折叠或展开代码
另外你还可以通过Cmd+Alt+Shift+[
和Cmd+Alt+Shift+]
来折叠或展开全部代码
通过Cmd+K Cmd+Num
来指定折叠哪一层缩进(Num
指定缩进的深度)
通过Cmd+Ctrl+Alt+F
或Fold Selection
命令来折叠任意选中的代码段
分栏
你可以使用Cmd+K 方向键
来创建新的分栏,其中方向键的方向决定了分栏的方式,比如Cmd+K ↓
就会创建一个新的水平分栏
当已经存在分栏时,通过Cmd+K Cmd+方向键
来在分栏间切换光标焦点.
如果你想关闭一个分栏,使用Cmd+W
代码类型
Atom会自动识别你当前编辑的文件的类型
如果识别失败,Atom会将此文件当做普通的文本文档来处理
在这种情况下我们可以使用Ctrl+Shift+L
来手动指定或改变当前文件的类型
Atom编辑器入门到精通(四) Atom使用进阶的更多相关文章
- Atom编辑器入门到精通(五) Git支持
版本控制对于开发来说非常重要,Atom当然也提供了很好的支持,本文将介绍如何在Atom中集成使用Git和GitHub 恢复文件 当你修改了某个文件,然后发现改得不满意,希望恢复文件到最后一次提交的状态 ...
- Atom编辑器入门到精通(一) 安装及使用基础
为什么选择使用Atom Atom是GitHub推出的一款编辑器,被称为21世纪的黑客编辑器,主要的特点是现代,易用,可定制.我之前用过多款编辑器,现在来总结一下个人对各编辑器的看法: Vim是我用的时 ...
- Atom编辑器入门到精通(六) Markdown支持
尽管我们使用Atom主要是为了编写代码,不过Atom还支持编辑很多其他格式的文件. 比如Markdown和Asciidoc. 这一章中我们主要学习如何快速方便地编辑Markdown文件.另外在写这篇博 ...
- Atom编辑器入门到精通(三) 文本编辑基础
身为编辑器,文本编辑的功能自然是放在第一位的,此节将总结常用的文本编辑的方法和技巧,掌握这些技巧以后可以极大地提高文本编辑的效率 注意此节中用到的快捷键是Mac下的,如果你用的系统是Win或者Linu ...
- Atom编辑器入门到精通(二) 插件的安装和管理
在本节中我们会学习如果安装和使用插件插件是Atom中一个非常重要的组成部分,很多功能都是以插件形式存在的.比如上篇文章中提到的目录树和设置等窗口都是通过默认安装的插件来实现的. 查看已安装的插件 打开 ...
- Python基本语法[二],python入门到精通[四]
在上一篇博客Python基本语法,python入门到精通[二]已经为大家简单介绍了一下python的基本语法,上一篇博客的基本语法只是一个预览版的,目的是让大家对python的基本语法有个大概的了解. ...
- MyBatis从入门到精通(四):MyBatis XML方式的基本用法之增删改
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 1. insert用法 1.1 简单的 ...
- iOS开发-UI 从入门到精通(四)
一.UITextField 1.UITextField是什么? (1)UITextField(输入框):是控制文本输入和显示的控件.在App中UITextField出现频率也比较高: (2)iOS系统 ...
- Python基本语法[二],python入门到精通[四] (转)
写在前面 python你不去认识它,可能没什么,一旦你认识了它,你就会爱上它 回到顶部 v正文开始:Python基本语法 1.定义常量: 之所以上篇博客介绍了定义变量没有一起介绍定义常量,是因为Pyt ...
随机推荐
- PHP imdb类多个跨站脚本漏洞
漏洞版本: PHP imdb Classes 2-2.1.5 漏洞描述: BUGTRAQ ID: 64542 PHP是一种HTML内嵌式的语言. PHP imdb类2-2.1.5及其他版本在实现上存在 ...
- Dell笔记本禁用触摸板的方法
一·找到触摸板驱动所在的文件夹(其他型号 的本本,请自己探索一下,找到驱动在哪就行),一般 在 C:\program files\delltpad 中(若没有请下载安 装 ),如图: 二·双击 Del ...
- ActiveX添加测试工程, 出现的问题[非选择性参数][找不到成员]
ActiveX 添加测试工程 1.新建工程MFC application, 2.添加完毕,在main Dialog中, 右键[Insert Activex Control],选择你的ActiveX控件 ...
- spring--注解注入--12
12.1 概述 12.1.1 什么是零配置 在SSH集成一章中大家注意到项目结构和包结构是不是很有规律,类库放到WEB-INF/lib文件夹下,jsp文件放到WEB-INF/jsp文件夹下,web ...
- codeforce 621A Wet Shark and Odd and Even
水 最大偶数和 #include<iostream> #include<string> #include<algorithm> #include<cstdli ...
- linkscrpit
一 section是什么? 好吧,我们需要解释一下平时编译链接生成的二进制可执行程序(比如说ELF,EXE也行),so或者dll,内核(非压缩的,参加本系列第一节内容.vmlinux),或者ko是怎么 ...
- storm出现的背景
storm出现的背景 互联网从诞生的第一时间起,对世界的最大改变就是让信息能够实时交互,从而大大加速了各个环节的效率.正因为大家有对信息实时响应.实时交互的需求,所以软件行业除了个人操作系统之外,数 ...
- 一个疑难bug的解决过程
一个crontab脚本,下载一个文件并把内容入mysql数据库.具体流程如下: 1, wget一个文件. 2,处理文件生成一个中间文件. 3,将中间文件load入库. 05 10 * * * /hom ...
- Android中解析JSON格式数据常见方法合集
待解析的JSON格式的文件如下: [{"id":"5", "version":"1.0", "name&quo ...
- hdu 1050 Moving Tables
http://acm.hdu.edu.cn/showproblem.php?pid=1050 这个题我首先直接用的常规贪心,用的和那个尽可能看更多完整节目那种思路.但是.......一直WA....T ...