<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Zen Coding &#8211; 任平生</title>
	<atom:link href="https://rpsh.net/tag/zen-coding/feed/" rel="self" type="application/rss+xml" />
	<link>https://rpsh.net</link>
	<description>待从头</description>
	<lastBuildDate>Mon, 18 May 2015 17:31:14 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.2.2</generator>
	<item>
		<title>Zen Coding 让 Notepad++ 代码书写健步如飞</title>
		<link>https://rpsh.net/archives/zen-coding-npp/</link>
					<comments>https://rpsh.net/archives/zen-coding-npp/#comments</comments>
		
		<dc:creator><![CDATA[任平生]]></dc:creator>
		<pubDate>Fri, 16 Jul 2010 14:18:46 +0000</pubDate>
				<category><![CDATA[奇技淫巧]]></category>
		<category><![CDATA[Notepad++]]></category>
		<category><![CDATA[Zen Coding]]></category>
		<guid isPermaLink="false">http://rpsh.net/?p=374</guid>

					<description><![CDATA[Zen Coding 让 Notepad++ 代码书写健步如飞，让HTML、CSS编写快速高效优雅。]]></description>
										<content:encoded><![CDATA[<p>Notepad++ 是一款无比轻巧便捷的代码编辑工具。它无可挑剔的启动速度，优秀的语法高亮，干净整齐的代码缩进，便捷的括号高亮匹配赢得了无数人的喜爱。</p>
<p>但，不知道有多少同学跟我一样，在coding 时被 Notepad++ 粗陋的代码自动补全折磨的体无完肤（Notepad++那甚至不能叫自动完成）。虽然无比羡慕诸如Dreamweaver之类的代码自动完成，但固于上述提到的几点Notepad++的优秀之处，纠结中毅然依旧坚守Notepad++。而 Zen Coding 的横空出世，总算终结了这种纠结，让我们得以以一种无比帅气的方式书写代码。 </p>
<p><span id="more-374"></span></p>
<p>先看一段演示视频吧（建议反复观摩，其中演示了 Zen Coding 的各种典型用法）</p>
<p><iframe src="https://player.vimeo.com/video/7405114" width="640" height="440" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe> </p>
<p><a href="http://vimeo.com/7405114">Zen Coding v0.5</a> from <a href="http://vimeo.com/user2060676">Sergey Chikuyonok</a> on <a href="http://vimeo.com">Vimeo</a>. （网速慢的，可以观看<a href="http://v.youku.com/v_show/id_XMTgxNTMzMjI0.html">优酷版</a>或者<a href="http://cid-0e35532fccceda08.skydrive.live.com/redir.aspx?page=self&amp;type=3&amp;client=wnf&amp;resId=E35532FCCCEDA08!5707">下载</a>该视频。）</p>
<h3>为Notepad++安装 Zen Coding 插件</h3>
<p>下载 <a href="http://zen-coding.googlecode.com/files/Zen.Coding-Notepad%2B%2B.v0.6.1.zip">Zen.Coding-Notepad++.v0.6.1.zip</a> 解压</p>
<p>将解压所得的文件放入 Notepad++ 程序的安装目录下的plugins文件夹。</p>
<p>重启Notepad++，即可开始使用 Zen Coding。</p>
<p style="text-align:center"><img decoding="async" src="http://public.bay.livefilestore.com/y1pI8tAXSucbenmfuSrh6m3C8XHxNQXl6Kc-TH80cXq8y501kA6oH3KbAD3hwrL6jW9GRnfCUiBtwuKdLRyR7HO5Q/zen_coding_for_npp.png?psid=1"/></p>
<h3>Zen Coding 用法</h3>
<p>首先，我们先学习一下 Zen Coding 的缩写规则 （其实就是CSS选择器）</p>
<ul>
<li>E <br />元素名 (div, p);
</li>
<li>E#id <br />带id的元素 (div#content, p#intro, span#error);
</li>
<li>E.class <br />带class的元素 (div.header, p.error.critial). id 和 class 可以连写，如： div#content.column.width;
</li>
<li>E&gt;N <br />子元素 (div&gt;p, div#footer&gt;p&gt;span);
</li>
<li>E+N <br />兄弟元素 (h1+p, div#header+div#content+div#footer);
</li>
<li>E*N <br />多项元素 (ul#nav&gt;li*5&gt;a);
</li>
<li>E$*N <br />带序号的元素 (ul#nav&gt;li.item-$*5); </li>
</ul>
<p>接下来，我们来熟悉 Zen Coding for Notepad++ 的快捷键，也是 Zen Coding 的精髓</p>
<p style="padding-bottom: 5px; background-color: #f0f9ff; padding-left: 10px; padding-right: 10px; border-top: #a1dbff 1px solid;margin:1em 0 0; padding-top: 5px">【Ctrl+E】 展开缩写（Expand Abbreviation）</p>
<p>比如写下 <code class="html">div#page&gt;div.logo+ul&gt;li*3&gt;a </code> ，按一下 Ctrl+E，立马就可以转化成：</p>
<pre><code class="html">&lt;div id="page"&gt;
	&lt;div class="logo"&gt;&lt;/div&gt;
	&lt;ul id="navigation"&gt;
			&lt;li&gt;&lt;a href=""&gt;&lt;/a&gt;&lt;/li&gt;
			&lt;li&gt;&lt;a href=""&gt;&lt;/a&gt;&lt;/li&gt;
			&lt;li&gt;&lt;a href=""&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
&lt;/div&gt;</code></pre>
<p style="padding-bottom: 5px; background-color: #f0f9ff; padding-left: 10px; padding-right: 10px; padding-top: 5px; border-top: #a1dbff 1px solid;margin:1em 0 0;">【Ctrl+Shift+A】 嵌套代码（Wrap with Abbreviation） </p>
<p><img decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://zen-coding.googlecode.com/svn/wiki/images/wrap1.png"/></p>
<p>比如，我们想让写好的 <code class="html">&lt;p&gt;hello world&lt;/p&gt;</code> ，想在外层再套一个div，只需按下【Ctrl+Shift+A】，在弹出的对话框中输入： <code class="html">div.wrap</code>，回车。此标签就能自动被嵌套。</p>
<p>甚至，我们可以玩的更炫一些，写好三行列表内容，全裸，此时没有任何标签。只需按下【Ctrl+Shift+A】，输入 <code class="html">ul&gt;li*</code> ，回车。这三行内容就能自动被ul li 嵌套起来。（不仅限于 li 列表哦）</p>
<p><img decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://zen-coding.googlecode.com/svn/wiki/images/wrap3.png"/></p>
<p style="padding-bottom: 5px; background-color: #f0f9ff; padding-left: 10px; padding-right: 10px; padding-top: 5px; border-top: #a1dbff 1px solid;margin:1em 0 0;">【Ctrl+Shift+D】选中代码块（Balance Tag Inward/Outward）</p>
<p>选中当前光标所在的代码块，长按可依次选中父块</p>
<p style="padding-bottom: 5px; background-color: #f0f9ff; padding-left: 10px; padding-right: 10px; padding-top: 5px; border-top: #a1dbff 1px solid;margin:1em 0 0;">【Ctrl+Alt+[ , Ctrl+Alt+]】 转到上一个/下一个编辑点（Go to Next/Previous Edit Point）</p>
<p>按下可以依次跳到可输入内容的编辑点，省去了不停按方向键或鼠标来定位编辑点的麻烦。</p>
<p><img decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://zen-coding.googlecode.com/svn/wiki/images/edit-points.png"/></p>
<p style="padding-bottom: 5px; background-color: #f0f9ff; padding-left: 10px; padding-right: 10px; padding-top: 5px; border-top: #a1dbff 1px solid;margin:1em 0 0;">【Ctrl+Alt+M 】合并行（Merge Lines）</p>
<p>将选中的多行代码合并为一行。压缩css、js代码为一行时，这个很方便。Ctrl+A，然后Ctrl+Alt+M，两下即可搞定，免去了动用压缩工具的麻烦。（当然这个只是简单地将代码合并为一行，并不能做更深入的代码压缩）</p>
<p style="padding-bottom: 5px; background-color: #f0f9ff; padding-left: 10px; padding-right: 10px; padding-top: 5px; border-top: #a1dbff 1px solid;margin:1em 0 0;">【Alt+/ 】添加、移除注释（Toggle Comment） </p>
<p>注释掉光标所在的代码块 （Notepad++ 自带的Ctrl+Shift+Q也可以用来注释代码）</p>
<p style="padding-bottom: 5px; background-color: #f0f9ff; padding-left: 10px; padding-right: 10px; padding-top: 5px; border-top: #a1dbff 1px solid;margin:1em 0 0;">【Ctrl+&#8217; 】空标签转化（Split/Join Tag） </p>
<p>比如将 <code class="html">&lt;div class="test"&gt;&lt;/div&gt;</code> 转化为 <code class="html">&lt;div class="test"/&gt;</code>， 反向亦可。 </p>
<p style="padding-bottom: 5px; background-color: #f0f9ff; padding-left: 10px; padding-right: 10px; padding-top: 5px; border-top: #a1dbff 1px solid;margin:1em 0 0;">【Ctrl+Shift+&#8217; 】移除标签（Remove Tag） </p>
<p>比如将 <code class="html">&lt;div class="test"&gt;hello world&lt;/div&gt;</code> 移除div标签，留下hello world。 <br />好了，目前 Notepad++ 的 Zen Coding 只有这几个快捷键，下面介绍一些常用到的缩写</p>
<p>不知道大家新建一个html 页面时，是如何输入文档声明和 head 那一坨东西的。现在有了Zen Coding，只需输入几个字母就能立马生成相应文档声明的 html 结构框架</p>
<pre><code>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)</code></pre>
<p>head 中常用到的一些缩写</p>
<pre><code>meta:utf, meta:compat
style, link:css, link:print, link:favicon, link:rss,
script, script:src</code></pre>
<p>body 中会常用到的缩写</p>
<p>诸如 <code>div, p, a, ul, ol, input:t, input:r</code> 等等</p>
<p>其中，类似 ul+ 的形式可展开为（+号可自动生产默认的子元素）</p>
<pre><code class="html">&lt;ul&gt;
    &lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;</code></pre>
<p>类似的还有<code> ol+, dl+, table+, tr+, select+, map+, optg+</code> 等</p>
<p>IE 条件注释：</p>
<p><code>cc:ie6, cc:ie, cc:noie</code></p>
<p>下边是一些典型用法示例： </p>
<pre><code class="html">div#name.one.two =&gt; 
		&lt;div id="name" class="one two"&gt;&lt;/div&gt;</code></pre>
<pre><code class="html">[title="Hello world" rel]  =&gt;
		&lt;a href="" title="hello world" rel=""&gt;&lt;/a&gt; </code></pre>
<pre><code class="html">td[colspan=2] =&gt;
		&lt;td colspan="2"&gt;&lt;/td&gt;</code></pre>
<pre><code class="html">li.item$*3  =&gt;
		&lt;li class="item1"&gt;&lt;/li&gt;&lt;li class="item2"&gt;&lt;/li&gt;&lt;li class="item3"&gt;&lt;/li&gt; </code></pre>
<pre><code class="html">li.item$$$ =&gt;
	&lt;li class="item001"&gt;&lt;/li&gt;</code></pre>
<pre><code class="html">	
li.item-$-content*3 =&gt; 
	&lt;li class="item-1-content"&gt;&lt;/li&gt;&lt;li class="item-2-content"&gt;&lt;/li&gt;&lt;li class="item-3-content"&gt;&lt;/li&gt; </code></pre>
<pre><code class="html">#content&gt;.section =&gt; 
	&lt;div id="content"&gt;&lt;div class="section"&gt;&lt;/div&gt;&lt;/div&gt;</code></pre>
<p>如果你写了这么一串出来，那么一个页面的基本结构就出来了：</p>
<pre><code class="html">div#page&gt;(div#header&gt;ul#nav&gt;li*4&gt;a)+(div#page&gt;(h1&gt;span)+p*2)+div#footer </code></pre>
<p>此外【|e】 可以输出转义字符</p>
<pre><code class="html">&amp;lt;div id="wrap"&amp;gt;
    &amp;lt;div class="content"&amp;gt;
        &amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;</code></pre>
<p><code class="html">div#wrap&gt;div.content&gt;p|e|e</code> 可转化为：</p>
<pre><code class="html">&amp;amp;lt;div id=&amp;quot;wrap&amp;quot;&amp;amp;gt;
    &amp;amp;lt;div class=&amp;quot;content&amp;quot;&amp;amp;gt;
        &amp;amp;lt;p&amp;amp;gt;&amp;amp;lt;/p&amp;amp;gt;
    &amp;amp;lt;/div&amp;amp;gt;
&amp;amp;lt;/div&amp;amp;gt;</code></pre>
<p>以上介绍的仅仅是有关HTML的缩写，CSS的缩写就更多了，建议查看 <a href="http://zen-coding.googlecode.com/files/ZenCodingCheatSheet.pdf">Zen Coding 小抄</a>，学习CSS 的 Zen Coding 方式</p>
<h3>自己编写缩写规则</h3>
<p>plugins\NppScripting\includes\Zen Coding.js</p>
<p>在其中对应位置仿照已有规则添加自己的缩写规则。也可以修改缩写规则更符合自己的习惯。</p>
<p>即使你不编写自己的缩写规则，也强烈建议你阅读此文件，熟悉 Zen Coding 自带的一些缩写规则，让代码书写更加事半功倍~</p>
<p>最后，Zen Coding 不仅有Notepad++版，Aptana、UltraEdit、Dreamweaver也有相应版本，速速前往 <a href="http://code.google.com/p/zen-coding/downloads/list">官方下载页</a> 查找是否有你常用的编辑器的Zen Coding插件吧～</p>
<p>文中部分示例及图片来自 <a href="http://code.google.com/p/zen-coding/w/list" target="_blank">Zen Coding Wiki</a> </p>
]]></content:encoded>
					
					<wfw:commentRss>https://rpsh.net/archives/zen-coding-npp/feed/</wfw:commentRss>
			<slash:comments>99</slash:comments>
		
		
			</item>
	</channel>
</rss>
