zen-coding for notepad++,前端最佳手写代码编辑器
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
|
<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 PDF缩写下载
转载于:https://www.cnblogs.com/goodbeypeterpan/p/3962820.html
zen-coding for notepad++,前端最佳手写代码编辑器相关推荐
- 2020年前端面试之JS手写代码题合集
2020年前端面试之JS手写代码题合集 预计会有上千道题,后续慢慢补! 1. 写一个把字符串大小写切换的方法 function caseConvert(str){return str.replace ...
- 印象笔记mac版 同步问题_Notability 最佳手写笔记 APP 之一!让 iPad / iPhone 变成工作学习利器...
虽然一直在将工作和生活上的资料电子化,如使用印象笔记.OCR软件.手机扫描软件等,但某些场景下录入资料,你会发现纸笔比打字更快更方便,因为可以随意写画涂鸦,那才够自由. 如果你也有同感,那么 Nota ...
- 前端面试高频手写代码题
前端面试高频手写代码题 一.实现一个解析URL参数的方法 方法一:String和Array的相关API 方法二: Web API 提供的 URL 方法三:正则表达式+string.replace方法 ...
- 前端面试:手写代码JS实现字符串反转
前端萌新面试:手写代码JS实现字符串反转 前言 因为做前年小红书的前端校招面试题,发现出现好几道关于字符串对象和数组对象的题目,说难不难,但突然要写的话一时想不起来,这不想着做个小总结. 首先明白字符 ...
- 2021-最新Web前端经典面试试题及答案-史上最全前端面试题(含答案)---手写代码篇
★★★ 手写代码:实现forEach map filter reduce ★★★ 手写实现一个简易的 Vue Reactive ★★★ 手写代码,监测数组变化,并返回数组长度 ★★★ 手写原生继承,并 ...
- 前端面试之手写代码篇
手写代码 1.手写instanceof方法 2.手写new操作符 3.手写Promise.all() 4.手写防抖函数 5.手写节流函数 6.手写call.apply函数 7.手写bind函数 8.封 ...
- Zen Coding: 一种快速编写HTML/CSS代码的方法
译自:Smashing Magazine 中文:Zen Coding: 一种快速编写HTML/CSS代码的方法 请尊重版权,转载请注明来源! 在本文中我们将展示一种新的使用仿CSS选择器的语法来快速开 ...
- 深入浅出 TCP/IP 协议栈丨手写代码实现网络协议栈
TCP/IP 协议栈是一系列网络协议的总和,是构成网络通信的核心骨架,它定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输.TCP/IP 协议采用4层结构,分别是应用层.传输层.网络层和链路 ...
- IOS纯手写代码支持旋屏
2019独角兽企业重金招聘Python工程师标准>>> 不用ib纯手写代码实现旋屏效果,xcode4.6.3,今天试了一下,可以做到,但是代码量会增加,基本思路是:在 - (void ...
最新文章
- 多项式基础操作 - 学习笔记
- 第二阶段团队绩效考核报告
- 2021年广东副高考试成绩查询,广东省中山市2021年高级会计师考试成绩可以查询了吗?...
- 写一个带输入输出的存储过程_携程大佬带你写一个可扩展的Spring插件。
- matlab smooth函数_基于Matlab的机械臂路径规划
- CNDS-markdowm使用方法(^ _ ^)
- 三菱q系列plc连接电脑步骤_SERVER和三菱Q系列PLC通讯设置步骤
- Qt Designer简介
- 交换机、路由器、防火墙综述
- 2021高考查询成绩公众号,微信怎么查高考成绩2021 微信高考成绩查询系统入口
- 5.8G无线游戏耳机模组方案需要哪些亮点|天惠微科技
- 【JVM】JVM系列
- python的lambda函数妙用
- 报错解决:SyntaxError: Non-UTF-8 code starting with ‘\xe7‘
- 《数据清洗》——kettle基本工具的使用
- bp神经网络和cnn神经网络,RNN神经网络适用于什么
- 海龟如何保留米帝手机号
- 在微信公众号中添加外部的链接图文教程
- 百度SEO一本通pdf
- URL 重写使用步骤
热门文章
- Apollo自动驾驶入门课程第⑥讲 — 预测
- java编写学籍管理系统_java学籍管理系统源代码.doc
- c语言中只能逐个引用6,C语言前面六个练习.doc
- 浪潮服务器建立虚拟驱动器,像《十二时辰》一样去建立标准! 浪潮这款服务器做到了...
- html5触边反弹,第四章课件.PPT_数字电子技术基础(ppt课件)_ppt_大学课件预览_高等教育资讯网...
- (四)nodejs循序渐进-函数,类和对象(基础篇)
- 《Python Cookbook 3rd》笔记(1.12):序列中出现次数最多的元素
- 《Java8实战》笔记(12):新的日期和时间API
- Projection投影
- HTTP状态代码及其定义