zen coding
zen-Coding是一款快速编写HTML,CSS(或其他格式化语言)代码的编辑器插件,这个插件可以用缩写方式完成大量重复的编码工作,是web前端从业者的利器。 zen-Coding插件支持多种编辑器,如UltraEdit,Notepad++等。
zen-Conding下载地址:http://code.google.com/p/zen-coding/downloads/list (进入下载页,选择相应的编辑器插件下载)
一、Notepad++安装zen-Coding
1.下载zen-Coding的Notepad++插件;(zen-Coding for Notepad++)
2.解压后将压缩包中的文件放入Notepad++安装目录下的plugins文件夹中;
3.重新启动Notepad++编辑器就能看到菜单栏上增加了一项Zen Coding。如下图所示:
二、zen-Coding的使用
zen-Coding的使用需要掌握CSS和HTML相关知识。其实只要对CSS的选择器比较熟悉,就可以得用简短的类似于CSS选择器的代码高效的编写出HTML代码。打开Notepad++编辑器,输入以下代码:
div#name
然后接着按一下快捷键ctrl+E,就会自动生成如下的HTML代码:
1
|
< div id = "name" ></ div > |
接下来看一个更高效的例子
div#header>div#logo+ul.nav>li.item-$*5>a
按ctrl+E生成如下代码
1
2
3
4
5
6
7
8
9
10
|
< div id = "header" > < div id = "logo" ></ div > < ul class = "nav" > < li class = "item-1" >< a href = "" ></ a ></ li > < li class = "item-2" >< a href = "" ></ a ></ li > < li class = "item-3" >< a href = "" ></ a ></ li > < li class = "item-4" >< a href = "" ></ a ></ li > < li class = "item-5" >< a href = "" ></ a ></ li > </ ul > </ div > |
Zend Coding语法
1.E | E#name | E.name
这里E表示元素,如p,div等。#name和.name分别表示ID和class属性。例:
div
1
|
< div ></ div > |
div#main
1
|
< div id = "main" ></ div > |
ul.item
1
|
< li class = "item" ></ li > |
如要显示一个id和多个class属性时,可以这样写
ul#nav.one.two
1
|
< ul id = "nav" class = "one two" ></ ul > |
2.E>E | E#name>E#name | E.#name>E.name | E.name>E.name
>表示父级嵌套子级。例:
div>span
1
|
< div >< span ></ span ></ div > |
div#nav>ul.main
1
2
3
|
< div id = "nav" > < ul class = "main" ></ ul > </ div > |
3.E+E | E#name+E#name | E.#name+E.name | E.name+E.name
+号表示兄弟关系。例:
p+p
1
2
|
< p ></ p > < p ></ p > |
div#header+div#content+div#footer
1
2
3
|
< div id = "header" ></ div > < div id = "content" ></ div > < div id = "footer" ></ div > |
E+ (+号表示会生成默认的子元素)
table+
1
2
3
4
5
|
< table > < tr > < td ></ td > </ tr > </ table > |
ul+
1
2
3
|
< ul > < li ></ li > </ ul > |
dl+
1
2
3
4
|
< dl > < dt ></ dt > < dd ></ dd > </ dl > |
4.E*N
N:表示某个元素需要重复的次数。例:
p*3
1
2
3
|
< p ></ p > < p ></ p > < p ></ p > |
ul#nav>li.item*4
1
2
3
4
5
6
|
< ul id = "nav" > < li class = "item" ></ li > < li class = "item" ></ li > < li class = "item" ></ li > < li class = "item" ></ li > </ ul > |
5.E*N$
$:表示序号。例:
ul#nav>li.item-$*4
1
2
3
4
5
6
|
< ul id = "nav" > < li class = "item-1" ></ li > < li class = "item-2" ></ li > < li class = "item-3" ></ li > < li class = "item-4" ></ li > </ ul > |
6.E[attr]
attr:表示元素属性。例:
a[title]
1
|
< a href = "" title = "" > < / a > |
td[colspan=2]
1
|
< td colspan = "2" ></ td > |
7.E|filter
E|e
|e输出转义字符
div#wrap>div.content>p|e
1
2
3
4
5
|
<div id="wrap"> <div class="content"> <p></p> </div> </div> |
8.( )控制嵌套分组关系
div#header>(h1.logo>a)+ul.nav>li.item*5>a
1
2
3
4
5
6
7
8
9
10
|
< div id = "header" > < h1 class = "logo" >< a href = "" ></ a ></ h1 > /*h1和ul是兄弟关系*/ < ul class = "nav" > < li class = "item" >< a href = "" ></ a ></ li > < li class = "item" >< a href = "" ></ a ></ li > < li class = "item" >< a href = "" ></ a ></ li > < li class = "item" >< a href = "" ></ a ></ li > < li class = "item" >< a href = "" ></ a ></ li > </ ul > </ div > |
div#header>h1.logo>a+ul.nav>li.item*5>a
1
2
3
4
5
6
7
8
9
10
11
12
|
< div id = "header" > < h1 class = "logo" > /*h1和ul是父子关系*/ < a href = "" ></ a > < ul class = "nav" > < li class = "item" >< a href = "" ></ a ></ li > < li class = "item" >< a href = "" ></ a ></ li > < li class = "item" >< a href = "" ></ a ></ li > < li class = "item" >< a href = "" ></ a ></ li > < li class = "item" >< a href = "" ></ a ></ li > </ ul > </ h1 > </ div > |
以上两种写法得到的结构是不一样的。 请大家注意观察。
练习:将以下代码用zen-coding写出来。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
< div id = "page" > < div id = "header" > < ul id = "nav" > < li >< a href = "" ></ a ></ li > < li >< a href = "" ></ a ></ li > < li >< a href = "" ></ a ></ li > < li >< a href = "" ></ a ></ li > </ ul > </ div > < div id = "page" > < h1 >< span ></ span ></ h1 > < p ></ p > < p ></ p > </ div > < div id = "footer" ></ div > </ div > |
答案:(选中下一空行试试)
div#page>(div#header>ul#nav>li*4>a)+(div#page>(h1>span)+p*2)+div#footer
三、Notepad++中zen-coding的使用
Expand Abbreviation(Ctrl+E):展开缩写
用法:输入缩写代码后,在代码末尾直接按快捷键得到完整代码。
Wrap with Abbreviation(Ctrl+Shift+A):嵌套父级元素
用法:选中需要嵌套父级元素的标签,按快捷键,在弹出的对话框中输入父级标签回车即可。例:
1
2
3
4
5
|
list1 list2 list3 list4 list5 |
选中以上内容,然后按【Ctrl+Shift+A】在弹出的对话框中输入ul.nav>li.item-$*>a[title]后按【Enter】键,就会生成如下代码
1
2
3
4
5
6
7
|
< ul class = "nav" > < li class = "item-1" >< a href = "" title = "" >list1</ a ></ li > < li class = "item-2" >< a href = "" title = "" >list2</ a ></ li > < li class = "item-3" >< a href = "" title = "" >list3</ a ></ li > < li class = "item-4" >< a href = "" title = "" >list4</ a ></ li > < li class = "item-5" >< a href = "" title = "" >list5</ a ></ li > </ ul > |
Balance TagInward/Outward(Ctrl+Shift+D):选中代码块
选中当前光标所在的标记,再次按下可以依次选中其父标签。
Go to Next/Previous Edit Point( Ctrl+Alt+] / Ctrl+Alt+[ ):转到下一个/上一个编辑点
Merge Lines(Ctrl+Alt+M):合并行
将选中的多行代码合并为一行。压缩css、js代码为一行时,这个很方便。Ctrl+A,然后Ctrl+Alt+M,两下即可搞定,免去了动用压缩工具的麻烦。(当然这个只是简单地将代码合并为一行,并不能做更深入的代码压缩)
Toggle Comment(Alt+/):添加、移除注释
注释掉光标所在的代码块 (Notepad++ 自带的Ctrl+Shift+Q也可以用来注释代码)
Split/Join Tag(Ctrl+’ ):空标签转化
比如将 <div></div>
转化为 <div/>
, 反向亦可。
Remove Tag(Ctrl+Shift+’ ):移除标签
比如将 <div>hello world</div>
移除div标签,留下hello world。
zen-coding常用缩写
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
html:4t (HTML 4.01 Transitional) html:4s (HTML 4.01) html:xt (XHTML 1.0) html:xs (XHTML 1.0 Strict) html:xxs (XHTML 1.1) html:5 (HTML5) meta:utf, meta:compat style, link:css, link:print, link:favicon, link:rss, script, script:src div, p, a, ul, ol, input:t, input:r ol+, dl+, table+, tr+, select+, map+, optg+ cc:ie6, cc:ie, cc:noie |
可以打开plugins\NppScripting\includes\Zen Coding.js这个JS文件看一看,熟悉Zen Coding自带的一些缩写规则。
zen coding的更多相关文章
- vim 中 也可以 直接安装 emmet 直接使用zen coding 生成 l指定个数的 lorem ipsum文字.
超链接的写法: 当作为链接的文字, 比较长时, 整个作为链接 就显得不是 很适合. 可以取其中的某一个单词 作为 超链接的 关键字:如: click here to continue emmet中如何 ...
- 再说vundle: 完全vim字符编程的四个必须插件 - zen coding 和emmet插件的使用
一个常识: 基本上vim插件的配置文集都是放在对应插件目录 的/autoload/ plugin_name.vim 文件中的 有四个必要/必须的插件,实现vim完全的字符界面的编程: NERDTree ...
- zen coding和emmet
zen coding 改名为 emmet http://emmet.io/download/
- sublime 插件zen coding
sublime的插件Zen Coding是一个编写html的神器,现在已经更名为Emmet了. 在sublime中的package需要搜索的是Emmet 相关网站: 官网 Zen Coding: 一种 ...
- 前端代码新写法——Zen Coding
是不是还在为html繁琐的标签写法而苦恼? 是不是还在枯燥的写尖括号? Zen Coding的到来将让前端编码不在繁琐.不再拘泥html的尖括号和一堆一堆的标签. 先看看ZenCoding的效果图. ...
- 使用Zen coding高效编写html代码
zen-Coding是一款快速编写HTML,CSS(或其他格式化语言)代码的编辑器插件,这个插件可以用缩写方式完成大量重复的编码工作,是web前端从业者的利器. zen-Coding插件支持多种编辑器 ...
- Web开发人员必备工具-Emmet (Zen Coding)
如果你从事前端开发或者web开发的话,一定听说过Zen coding - 一种快速编写HTML/CSS代码的方法.它使用仿CSS选择器的语法来快速开发HTML和CSS - 由Sergey Chikuy ...
- 使用Emmet(前身Zen Coding)加速Web前端开发
Emmet插件以前被称作为Zen Coding,是一个文本编辑器的插件,它可以帮助您快速编写HTML和CSS代码,从而加速Web前端开发.早在2009年,Sergey Chikuyonok写过一篇文章 ...
- Zen Coding support in WebStorm/PhpStorm
With the last WebStorm/PhpStorm EAP you can edit HTML and CSS code really fast usingZen Coding featu ...
- Emmet(前身是zen coding)介绍和使用
Zen coding - 一种快速编写HTML/CSS代码的方法.它使用仿CSS选择器的语法来快速开发HTML和CSS - 由Sergey Chikuyonok开发. 现在它改名为了Emmet,并且搭 ...
随机推荐
- HDU2579(bfs迷宫)
Dating with girls(2) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- Spring中的线程池ThreadPoolTaskExecutor介绍
前言: Java SE 5.0引入了ThreadPoolExecutor.ScheduledThreadPoolExecutor.Spring 2.x借助ConcurrentTaskExecutor和 ...
- RCE、exp、Exploit、Exploit Pack、exp-gui、Payload、MetaSploit都是啥
对于走在安全路上的小菜来说,这几个exp.Exploit.Exploit Pack.exp-gui.Payload.MetaSploit名词着实把人转的不轻,下面给大家解释下: RCE,remote ...
- Struts2中web.xml里面struts-cleanup作用
struts2.1.3之后的版本均不需要配置该过滤器 参考: struts-cleanup作用 升级到struts-2.3.14.3之后涉及的改动以及ActionContextCleanUp,Stru ...
- Python模块之: ConfigParser 配置文件读取
Python模块之: ConfigParser 配置文件读取 ConfigParser用于读写类似INI文件的配置文件,配置文件的内容可组织为组,还支持多个选项值(option-value)类型. ...
- zedgraph控件的一些比较有用的属性
(1)zedgraph控件属性具体解释: AxisChange()() ->> This performs an axis change command on the graphPane. ...
- Eclipse中classpath和deploy assembly的文件位置
classpath的配置信息存储在工程根目录下的.classpath文件 deploy assembly配置信息存储在工程目录下的.settings\org.eclipse.wst.common.co ...
- 【持久化框架】SpringMVC+Spring4+Mybatis3集成,开发简单Web项目+源码下载
上篇博文我们介绍了mybatis的基本概念与原理,这篇博文我们通过Spring与Mybatis集成,开发一个简单用户增删改查的Web项目. 基本准备工作 1.安装JDK1.6以上版本,安装与配置 2. ...
- WCF上传大文件处理方法
<system.serviceModel> <bindings> <basicHttpBind> <Binding name=" maxReceiv ...
- 关于struts2.3的action
struts2.3中支持实时配置,也就是说不用在struts.xml中进行配置.但是所有的action文件应该放在有路径名含action的包中,否则程序无法发现你的action. 这个问题,难为了我好 ...