最近在做一个项目,涉及到大量的HTML、CSS代码的编写,手动写代码效率实在 是低下。于是想搜索一下,有没有Notepad++插件可以支持自动生成的,果不其然还真有。Emmet,这款神器其实就是 Zen Coding 的升级版,它可以极大的提高代码编写的效率,并提供了一种非常简练的语法规则,立刻生成对应的 HTML 结构或者 CSS 代码,同时还有多种实用的功能帮助进行前端开发。

Emmet支持多种编辑器,如Sublime Text 2,TextMate 1.x,Eclipse/Aptana,Espresso,Notepad++等。我习惯于在Notepad++下写代码,因此本文记述的是如何在Notepad++下安装和使用。

1、下载Emmet和Python Script

Emmet需要 Python Script 的支持,因此这两款插件必须同时安装才能使用。

2、安装

Emmet的安装比较简单,下载完解压后复制到Notepad++安装目录的plugins下即可。

Python Script的安装则稍稍复杂,我走了一些弯路后才搞定。一开始以为将解压后的文件扔到plugins下就行了,但启动Notepad++时总是报错。

于是我打开 Python Script 的帮助文件,看了一遍安装手册才搞明白。

下载完PythonScript_full_0.9.2.0.zip后解压,将python27.dll文件复制到Notepad++安装目录的根目录下,同时在plugins文件夹中的全部内容复制到Notepad++安装目录的plugins下。

为表达清楚,摘录Python Script 的目录结构如下:

Notepad++ (Notepad++ 安装主目录,一般位于"C:\Program Files"下)

+

|-- python27.dll(放在Notepad++ 安装主目录下,和notepad++.exe属于同一目录)

+-- plugins

\

|-- PythonScript.dll

|

|-- PythonScript

| \

| |-- lib

| | \

| | |-- (*.py) 很多 *.py 文件和子目录

| |

| |-- scripts

| \

| |-- (脚本和一些示例)

|

|

|-- doc

| \

| |-- PythonScript

| \

| |-- PythonScript.chm(PythonScript帮助文档,英文版)

3、Emmet的工作流程

安装完Emmet后,强烈建议更改 Expand Abbreviation 的键盘快捷键为Tab键。

打开Notepad++Settings > Shortcut Mapper…对话框,切换到 plugin commands,选中 Expand Abbreviation 项,

(Expand Abbreviation(Ctrl+E):展开缩写用法:输入缩写代码后,在代码末尾直接按快捷键得到完整代码。)

修改其快捷键为Tab键即可。


然后,就可以按照 Emmet 的工作流程来干活了:

打开 HTML 或 CSS 文件->按语法编写指令->按下 TAB 键->生成!

4、Emmet的使用教程

Expand Abbreviation(Ctrl+E):展开缩写

用法:输入缩写代码后,在代码末尾直接按快捷键得到完整代码。

Wrap with Abbreviation(Ctrl+Shift+A):嵌套父级元素

用法:选中需要嵌套父级元素的标签,按快捷键,在弹出的对话框中输入父级标签回车即可。例:

选中以上内容,然后按【Ctrl+Shift+A】在弹出的对话框中输入ul.nav>li.item-$*>a[title]后按【Enter】键,就会生成如下代码

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+’ ):空标签转化

比如将

Remove Tag(Ctrl+Shift+’ ):移除标签

比如将



hello world

移除div标签,留下hello world。


zen-coding常用缩写

可以打开C:\Program Files\Notepad++\plugins\EmmetNPP\emmet\snippets.json这个json文件看一看,熟悉EmmetNPP自带的一些缩写规则。