Sublime Text 作为十分优雅的文本编辑软件,一直是前端开发和一些程序开发人员的最爱。毕竟让人爱不释手,再配上优雅的等宽字体,让编程成为一种享受。
除了界面优雅,他丰富的社区资源也是十分优秀的,有丰富的插件来方便你使用。今天介绍一款十分出名的前端插件,Emmet(原名是大名鼎鼎的 Zencoding)。
Emmet简化了前端人员编写HTML的过程,只要打几个字再按Tab(Ctrl+E)就能完成以前几行的代码量。可谓是业界神器。当然你也可以在其他编辑程序,比如Vim,Notepad++等等,可以说都可以使用。
下面介绍一下如何在sublime Text 下安装 Emmet .
Sublime Text 目前主流版本是 Sublime Text 2 和Sublime Text 3。差别不是很大,3作为新版本也有着他自己的特性。但是3目前是Beta版本。
下载地址:
Sublime Text 3 : http://www.sublimetext.com/3
Sublime Text 2 : http://www.sublimetext.com/2
Sublime Text 是个共享软件,但是你不购买在大多时候不影响使用的,只有在偶尔保存的时候提示你购买。所以这软件够业界良心,就算买也不算贵,70刀。如果sublime Text 4出来的时候,可以免费升级到4。
安装包管理一共有两个办法,一个是自动化的,一个是手动导入。
按 Ctrl + ` (就是数字1旁边的) 然后把下面的代码输入运行。这是一个python程序,Sublime Text 3 和 Sublime Text 2代码有些区别。
Sublime Text 3 如下:
Sublime Text 2 如下:
import
urllib2,os; pf
=
'Package Control.sublime-package'
; ipp
=
sublime.installed_packages_path(); os.makedirs( ipp )
if
not
os.path.exists(ipp)
else
None
; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler( )));
open
( os.path.join( ipp, pf),
'wb'
).write( urllib2.urlopen(
'http://sublime.wbond.net/'
+
pf.replace(
' '
,
'%20'
)).read());
print
(
'Please restart Sublime Text to finish installation'
)
之后会提示,就证明你安装成功了。需要重启Sublime Text一下。
1 missing dependency was just installed. Sublime Text should be restarted, otherwise one or more of the installed packages may not function properly.
1). 下载http://download.csdn.net/detail/shirley254/9614732(传送门)
2). 点 Preferences > Browse Packages ,去上级目录,把刚才的文件复制到 Installed Packages/ 里面
3). 重启 Sublime Text 2/3 即可完成安装
在安装包管理工具之后一切就简单了很多了。我们安装和删除就能用包管理工具来快速实现。
快捷键 Ctrl + shift + p . 或者点 Tools -> Command line ,入 PCIP 也就是 Package Control Install Package 的简写 ,然后Enter
稍等片刻,输入 Emmet ,再 Enter 之后会弹出来一个Package Control Message ,再重新启动下Sublime Text就可以完成。
表示安装成功。
Emmet 的语法有点类似 CSS 的语法,生成 id 为 a 的 div 标签,我们只需要编写下面指令:
tab之后
Emmet 默认的标签为 div ,如果不给出标签名称的话,默认就生成 div 标签。如果编写一个 class 为 b 的 span 标签,需要编写下面指令:
同理,如果想要编写一个 id 为 c 的 class 为 d 的 ul 标签,可以这样写:
大于号表示后面要生成的内容是当前标签的后代。例如生成一个无序列表,而且被 class 为 a的 div 包裹,那么可以使用下面指令:
tab之后
上面是生成下级元素,如果想要生成平级的元素,就需要使用 + 号。例如下面指令:
上级 (Climb-up)元素是什么意思呢?前面说过了生成下级元素的符号“>”,当使用
div>ul>li
的指令之后,再继续写下去,那么后续内容都是在 li 下级的。如果要编写一个跟 ul 平级的 span 标签,那么需要先用 “^” 提升一下层次。例如:
div>ul>li^span
就会生成如下结构:
如果生成一个相对与 div 平级元素,那么就再上升一个层次,多用一个“^”符号:
div>ul>li^^span
特别是一个无序列表,ul 下面的 li 肯定不只是一份,通常要生成很多个 li 标签。那么可以直接在 li 后面 * 上一些数字:
ul>li*5
这样就直接生成五个项目的无序列表了。如果想要生成多份其他结构,方法类似。
用括号进行分组,这样可以更加明确要生成的结构,特别是层次关系,例如:
div>(header>ul>li*2>a)+footer>p
这样很明显就可以看出层次关系和并列关系,生成如下结构:
此外,分组还可以很方便的结合上面说的 “*” 符号生成重复结构:
(div>dl>(dt+dd)*3)+footer>p
生成结构:
a 标签中往往需要附带 href 属性和 title 属性,如果我们想生成一个 href 为 “http://my.csdn.net/my/mycsdn” ,title 为“我的csdn”的 a 标签,可以这样写:
a[href="http://my.csdn.net/my/mycsdn" title="我的csdn"]
其他标签和属性都类似。
例如无序列表,为五个个 li 增加一个 class 属性值 item1 ,然后依次递增从 1-5,那么就需要使用 $ 符号:
ul>li.item$*5
这样就生成了如下结构:
$就表示一位数字,只出现一个的话,就从1开始。如果出现多个,就从0开始。如果我想生成三位数的序号,那么要写三个 $:
ul>li.item$$$*5
输出:
不止这样单调的生成序号,对于强大的 Emmet 来说,也可以在 $ 后面增加 @- 来实现倒序排列:
ul>li.item$@-*5
生成如下结构:
同样,也可以使用 @N 指定开始的序号:
ul>li.item$@3*5
这样就会从 3 开始排序,生成如下代码:
配合上面倒序输出,可以这样写:
ul>li.item$@-3*5
生成的就是以 3 为底倒序:
上面讲解了如何生成 HTML 标签,那里面的内容呢?当然也可以生成了:
a[href="http://www.baidu.com"]{点击这里到 百度}
这样就生成了一个到我的csdn的超链接了。在生成内容的时候,特别要注意前后的符号关系,虽然 a>{Click me} 和 a{Click me} 生成的结构是相同的,但是加上其他的内容就不一定了,例如:
这样就生成了完全不同的结构,注意这些小细节哦。
在写指令的时候,你可能为了代码的可读性,使用一些空格什么的排版一下。这就会导致代码无法使用。例如下面这句:
(header > ul.nav > li*5) + footer
而去掉空格之后,就可以正常执行生成结构了。