zen-Coding是一款快速编写HTML,CSS(或其他格式化语言)代码的编辑器插件,这个插件可以用缩写方式完成大量重复的编码工作,是web前端从业者的利器。 zen-Coding插件支持多种编辑器,如UltraEdit,Notepad++等。

温馨提示:zen-Coding已经改名Emmet,并且搭建了一个新的网站:docs.emmet.io。

zen-Conding下载地址:http://code.google.com/p/zen-coding/downloads/list (进入下载页,选择相应的编辑器插件下载)

Notepad++ 是一款无比轻巧便捷的代码编辑工具。它无可挑剔的启动速度,优秀的语法高亮,干净整齐的代码缩进,便捷的括号高亮匹配赢得了无数人的喜爱。 但,其代码自动补全很“鸡肋”,或者说Notepad++根本就没有代码补全功能。平时改点源代码很方便,但是想单独的写点源代码就比较麻烦了,难道要一点点的都敲吗?先上段视频:

怎么样?惊呆了吧。Zen Coding–一款使用仿CSS选择器的语法来快速开发HTML和CSS的插件。它无视了编辑器的自动提示和自动完成,秒杀了你自定义的各种快捷键或者 AHK 的热字符串,以智能简洁高效的缩短输入,带给你超快速地书写各种复杂而枯燥的 HTML 和 CSS 代码的体验。

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
&lt;div id="wrap"&gt;
&lt;div class="content"&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

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 PDF缩写下载

www.songxiaodong.com.cn

zen-coding for notepad++,前端最佳手写代码编辑器的更多相关文章

  1. 前端面试手写代码——call、apply、bind

    1 call.apply.bind 用法及对比 1.1 Function.prototype 三者都是Function原型上的方法,所有函数都能调用它们 Function.prototype.call ...

  2. 前端面试手写代码——模拟实现new运算符

    目录 1 new 运算符简介 2 new 究竟干了什么事 3 模拟实现 new 运算符 4 补充 预备知识: 了解原型和原型链 了解this绑定 1 new 运算符简介 MDN文档:new 运算符创建 ...

  3. 前端面试手写代码——JS函数柯里化

    目录 1 什么是函数柯里化 2 柯里化的作用和特点 2.1 参数复用 2.2 提前返回 2.3 延迟执行 3 封装通用柯里化工具函数 4 总结和补充 1 什么是函数柯里化 在计算机科学中,柯里化(Cu ...

  4. 前端面试手写代码——JS数组去重

    目录 1 测试用例 2 JS 数组去重4大类型 2.1 元素比较型 2.1.1 双层 for 循环逐一比较(es5常用) 2.1.2 排序相邻比较 2.2 查找元素位置型 2.2.1 indexOf ...

  5. 2019前端面试系列——JS高频手写代码题

    实现 new 方法 /* * 1.创建一个空对象 * 2.链接到原型 * 3.绑定this值 * 4.返回新对象 */ // 第一种实现 function createNew() { let obj ...

  6. ClownFish:比手写代码还快的通用数据访问层

    http://www.cnblogs.com/fish-li/archive/2012/07/17/ClownFish.html 阅读目录 开始 ClownFish是什么? 比手写代码还快的执行速度 ...

  7. 手写代码自动实现自动布局,即Auto Layout的使用

    手写代码自动实现自动布局,即Auto Layout的使用,有需要的朋友可以参考下. 这里要注意几点: 对子视图的约束,若是基于父视图,要通过父视图去添加约束. 对子视图进行自动布局调整,首先对UIVi ...

  8. 如果选择构建ui界面方式,手写代码,xib和StoryBoard间的博弈

    代码手写UI这种方法经常被学院派的极客或者依赖多人合作的大型项目大规模使用. 大型多人合作项目使用代码构建UI,主要是看中纯代码在版本管理时的优势,检查追踪改动以及进行代码合并相对容易一些. 另外,代 ...

  9. .netER的未来路,关于基础是否重要和应该自己手写代码吗?

    http://www.cnblogs.com/onepiece_wang/p/5558341.html#!comments 引用"基础知识的学习,一开始可能是背书,但是在后续若干年的工作过程 ...

随机推荐

  1. linux关闭防火墙方法

    在关闭防火墙之前需要查看防火墙的状态,可以使用service iptables status命令来查看,确定防火墙是否开启再来进行关闭操作. 如果想临时开启防火墙使用命令service iptable ...

  2. MFC非模态对话框销毁

    非模态对话框需要重载OnCanel方法, 并调用DestroyWindow, 且不能调用基类的OnCanel重载PostNcDestroy, 需要delete掉this指针 // Overrides  ...

  3. Mysql查询优化随笔记录

    select SQL_CALC_FOUND_ROWS * from (select * from  oses_vehdata201606 union all  select * from  oses_ ...

  4. 04737_C++程序设计_第8章_多态性和虚函数

    例8.1 分析下面程序的输出结果. 例8.2 分别使用指针和引用的display函数. #include <iostream> using namespace std; const dou ...

  5. swift3.0 扩展、协议(4)

    扩展和协议是swift中的两个特性,用于对已有的类型进行扩展和修改. 扩展(extension) 向已经存在的类型添加新的功能(属性.方法.下标脚本等等),扩展使用extension关键字定义,语法 ...

  6. poj2486 Apple Tree (树形dp)

    题意:有一颗苹果树,树上的u节点上有num[u]个苹果,树根为1号节点,囧king从根开始走,没走到一个节点就把接点上的苹果吃光,问囧king在不超过k步的情况下最多吃多少个苹果. 解题思路:处理出两 ...

  7. CodeForces - 61E Enemy is weak

    Description The Romans have attacked again. This time they are much more than the Persians but Shapu ...

  8. New Relic——手机应用app开发达人的福利立即就到啦!

    HiWork集成的第三方服务(机器人)将有新的添加啦,添加了BitBucket和New Relic.分别做下介绍啦! 1.BitBucket BitBucket 是一家源码托管站点.採用Mercuri ...

  9. golang 并发之协程及通道

    一.概述 在golang中,每个并发执行单元称为goroutine,当程序启动时,main函数在一个单独的goroutine中运行,(main goroutine).新的goroutine会用go语句 ...

  10. webService接口大全

    中文<->英文双向翻译WEB服务 获得标准数据 Endpoint: http://fy.webxml.com.cn/webservices/EnglishChinese.asmx Disc ...