我们经常需要对二维数组进行迭代,比如这样:

for(int x = 0; x < width; x++){
for(int y = 0; y < height; y++){
screen[x][y].setColor("black");
}
}

过上一段时间,你又要写这么一段代码:

for(int i = 0; i < rows; i++){
for(int j = 0; j< columns; j++){
objects[i][j].update();
}
}

如果你是程序员,那么你理应厌烦:又一次重复得输入for,[],{}……而且一个不小心,还很容易输入错误。浪费时间寻找哪里少了一个分号可不是你该做的事情。

那么不如来试试Snippet,一小段预先定义好格式的代码块。下次使用时,只需填入变化的部分。是的,就像填表一样。

在Atom中设置你的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

第一个示例:指定Python文件的编码

我们都知道,如果你在python2中使用中文,在Python文件开头,你需要添加这么一段代码,指定这个文件的编码格式:

# -*- coding:utf8 -*-

每次都要输入,重复!那就把它变成一段Snippet吧:

'.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出现三次,这意味着一次键入,三处输入。这样不但快捷,还能保证命名一致。(错也会错成一样的)。

要注意的

    • Snippet很方便,但只有你用起来的时候才能加速你的编码。要记得使用,直到肌肉有了记忆,自然而然地使用Snippet。
    • Snippet的介绍似乎不是很重要,但安装了其他人的Snippet后,你需要这些介绍来进行区分,所以还是要认真编写的。
    • 保持开心,如果Snippet用起来感觉不是爽而是痛苦,那就不要使用它。也许你会发现,这些重复的编码可以用其他的东西来解决,比如map函数。

Atom中设置你的Snippet,atom技巧(二)的更多相关文章

  1. PHP的学习--在Atom中使用XDebug(Mac)

    之前写过一篇博客<PHP的学习--在sublime中使用XDebug(Ubuntu)>,讲了在Ubuntu系统 sublime 中配置 XDebug,其实配置好之后,我也很少用,原因有两点 ...

  2. 【npm】如何在Atom中安装emmet和atom-beautify插件?

    为了提高编写HTML和CSS的速度,最近尝试着在Atom中安装emmet插件,下面谈谈安装成功的过程 1首先我尝试了网上教程中介绍最多的方法:打开Atom的引导界面(Welcome Guide)中的i ...

  3. atom中开发vue常用插件

    atom: 开发利器,界面友好,配色出色,好用的插件众多. language-vue: 这个是首推,因为它就是为vue而生的呀,支持很多vue里的提示.在空的vue页面敲tem,vue模板的提示就自动 ...

  4. 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获

    项目开发中的一些注意事项以及技巧总结   1.jquery采用ajax向后端请求时,MVC框架并不能返回View的数据,也就是一般我们使用View().PartialView()等,只能返回json以 ...

  5. iOS开发小技巧--iOS中设置applicationIconBadgeNumber遇到的问题

    iOS中设置applicationIconBadgeNumber 在iOS7中直接设置applicationIconBadgeNumber没有问题,但是在iOS8之后设置applicationIcon ...

  6. Atom编辑器入门到精通(四) Atom使用进阶

    在本节中将介绍Atom提供的更高级的使用技巧,通过这些技巧将会进一步提高你的代码编写效率 代码片段(Snippets) Snippets是一种在代码中快捷插入代码块的方式,下面是维基百科中对Snipp ...

  7. jboss:在standalone.xml中设置系统属性(system-properties)

    就象在.net的web应用中,可以在web.config中设置appSettings一样,jboss的standalone.xml中也可以由开发人员自行添加系统属性,用法如下: </extens ...

  8. 如何在BIOS中设置RAID?

    随着价格的下降和相应主板的支持,目前SATA硬盘已经逐渐成为主流.但由于受芯片组和操作系统的影响,不少用户对SATA硬盘的使用及安装系统掌握不足,今天小编就给大家介绍一下SATA硬盘的日常应用技巧,希 ...

  9. iOS中崩溃调试的使用和技巧总结 韩俊强的博客

    每日更新关注:http://weibo.com/hanjunqiang  新浪微博 在iOS开发调试过程中以及上线之后,程序经常会出现崩溃的问题.简单的崩溃还好说,复杂的崩溃就需要我们通过解析Cras ...

随机推荐

  1. Linux命令之乐--test

    官方文档: help test File operators: -a FILE True if file exists. -b FILE True if file is block special. ...

  2. 折腾deeplin系统

    1.双系统失败记录 多系统启动问题 先安装完deepin,发现再安装windows怎么都起不起来,哪怕他们已经安装在不同的盘 (体现再Windows7通过ghost位于另外一个盘,但就是没有启动项) ...

  3. ios开发-获取手机相关信息

    今天在做客户端的时候,里面有个意见反馈功能. 调用系统带的邮件功能,发送邮件到指定邮箱. 然后我就想,应该在邮件正文部分添加手机相关内容,比如型号,版本,应用程序的版本等等,这样不仅使用者方便,开发者 ...

  4. ubuntu安装Docker并部署selenium-grid

    目录 一.docker安装 Ubuntu 1.检查内核版本大于3.10 2.更新apt源 3.安装docker 4.(建议)更新成国内源 5.启动.重启docker (可选)检查docker运行情况 ...

  5. HDFS编程

    HDFS编程主要API Hadoop类 功能 org.apache.hadoop.fs.FileSystem 一个通用文件系统的抽象基类,可以被分布式文件系统继承.所有的可能使用Hadoop文件系统的 ...

  6. Hadoop伪分布安装详解(五)

    目录: 1.修改主机名和用户名 2.配置静态IP地址 3.配置SSH无密码连接 4.安装JDK1.7 5.配置Hadoop 6.安装Mysql 7.安装Hive 8.安装Hbase 9.安装Sqoop ...

  7. 购物车-删除单行商品-HTMLTableElement.deleteRow()

    wta 问题发源的代码: /*删除单行商品*/ function deleteRow(rowId){ var Index=document.getElementById(rowId).rowIndex ...

  8. mysql 浏览器submit中文, shell乱码

    w控制变量法. 初始 浏览器submit中文 成功执行 问题仍未解决 执行 SET character_set_database='latin1'; 再执行 SET character_set_res ...

  9. Spark源码分析 – SparkEnv

    SparkEnv在两个地方会被创建, 由于SparkEnv中包含了很多重要的模块, 比如BlockManager, 所以SparkEnv很重要 Driver端, 在SparkContext初始化的时候 ...

  10. linux 修改用户密码

    passwd 命令:用于对用户的密码进行管理,可以设置.修改.删除密码. 修改root用户的密码:$ sudo passwd root