咱们常常须要对二维数组进行迭代,好比这样:css
for(int x = 0; x < width; x++){ for(int y = 0; y < height; y++){ screen[x][y].setColor("black"); } }
过上一段时间,你又要写这么一段代码:java
for(int i = 0; i < rows; i++){ for(int j = 0; j< columns; j++){ objects[i][j].update(); } }
若是你是程序员,那么你理应厌烦:又一次重复得输入for
,[]
,{}
……并且一个不当心,还很容易输入错误。浪费时间寻找哪里少了一个分号可不是你该作的事情。python
那么不如来试试Snippet,一小段预先定义好格式的代码块。下次使用时,只需填入变化的部分。是的,就像填表同样。程序员
为了在Atom中使用Snippet,你须要首先定义好你的代码块格式。编程
Linux环境下,进入Edit->Snippets...,相对应的,在Windows下是File->Snippets...。数组
这其实是一个cson文件,格式以下:编程语言
'.source.python': # 在何种文件中使用这个Snippet 'python coding': # 对Snippet的简短说明 'prefix': 'coding' # 输入什么前缀能够触发这个Snippet 'body': '# -*- coding:utf8 -*-\n' # Snippet的内容
第一行指定在何种文件中使用Snippet,你能够在设置的Packages中的Installed Package里搜索你要用的编程语言。
点击对应的包,一般名字是:language-编程语言。在打开的包里看看Scope是什么。
经常使用的几种以下:函数
文件后缀 | Scope |
---|---|
.c .h | .source.c |
.py | .source.python |
.java | .source.java |
.js | .source.js |
.css | .source.css |
.md | .source.gfm |
咱们都知道,若是你在python2中使用中文,在Python文件开头,你须要添加这么一段代码,指定这个文件的编码格式:编码
# -*- coding:utf8 -*-
每次都要输入,重复!那就把它变成一段Snippet吧:atom
'.source.python': 'python coding': 'prefix': 'coding' 'body': '# -*- coding:utf8 -*-\n'
这样,在打开.py文件后,只需输入coding
,而后按下Tab键,这段遍及着*
的代码行就一会儿输入成功了。
仍是在Python中,若是你想要添加一段像下面这样的代码,将你的.py文件划分红多块的话:
#===================== # 数据爬取结束,开始匹配 #=====================
这时候,中间的文字是你每次都须要更改的部分,固然能够在输入其余部分后再移到中间部分进行编辑,但咱们有更好的东西:
'.source.python': 'python coding': 'prefix': 'coding' 'body': '# -*- coding:utf8 -*-\n' 'section': 'prefix': 'section' 'body': '#=====================\n# $1\n#=====================\n$2'
注意,对同一后缀文件的Snippet,都得写在一块儿。
$1表示光标第一次所处的位置,按一下Tab后光标会移到$2所处的位置。
在这个例子中,输入section而后按Tab,光标就自动出如今这段代码的中间,输入完中间部分,再按Tab,光标就会移动到这段文字的最后。你能够继续编码,而无需浪费时间在移动光标上。
在上面,咱们使用\n
划分多行,可是行数一多,这样看起来就眼花缭乱了,咱们可使用"""
来编写多行的Snippet:
'.source.java': 'iterate two dimension array': 'prefix' : 'for2' 'body' : """ for(int $1 = 0; $1 < $2; $1++){ for(int $3 = 0; $3 < $4; $3++){ $5[$1][$3]$6 } } $7 """
Atom的一个优点就是能够同时修改文件的不一样位置,Snippet天然支持这一点。
你会注意到,$1出现三次,这意味着一次键入,三处输入。这样不但快捷,还能保证命名一致。(错也会错成同样的)。
map
函数。