转自:http://www.jianshu.com/p/67fa1e2114c5

背景

HTML和CSS的写法相对固定,而且重复的工作特别多,特别是尖括号实在是很烦。使用Emmet至少能帮你节省一半的前期开发工作量,所以花点时间学习Emmet是很值得的。Emmet不是编程语言,而只是编辑器的插件,也可以自定义规则。

安装

Emmet支持多种编辑器,参见列表。由于我使用vim,这里只介绍vim的插件。

教程里已经介绍的很清楚,我主要罗列常用写法。

用法

快捷键

注:<c-y>, 指先按ctrl+y,再按,,后面不再说明

快捷键 介绍
<c-y>, emmet触发键,tips:输完命令后最好在后面多写一个空格,如:html:5_
v <c-y>, 先进入可视模式,选择目标文本,按快捷键,状态栏弹出Tags:,输入命令即可
<c-y>n 跳转到下一个编辑点
<c-y>N 跳转到上一个编辑点
<c-y>i 移动到img标签,按快捷键,自动为图片添加大小
<c-y>m 合并多行为一行
<c-y>k 删除当前tag
<c-y>/ 切换添加、去除注释
<c-y>a 自动将网址转换为链接标签
  • 简写注意事项
简写 编译
.wrap>.content div.wrap>div.content
em>.info em>span.info
ul>.item*3 ul>li.item*3
table>#row$*4>[colspan=2] table>tr#row$*4>td[colspan=2]

基本html用法

  • ! (生成基本html结构,效果同html:5)
    示例: !
    效果:

      <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title></title>
    </head>
    <body> </body>
    </html>
  • html:5 (效果同!,另外还有html:xt, html:4s)

  • # (生成id)
    示例: div#main 或者直接写 #main
    效果:

      <div id="main">
    </div>
  • . (生成class)
    示例: div.list
    效果:

      <div class="list">
    </div>
  • > (生成后代元素)
    示例: div.list>ul>li
    效果:

      <div class="list">
    <ul>
    <li></li>
    </ul>
    </div>
  • + (生成兄弟元素)
    示例: h1+h2+p
    效果:

      <h1></h1>
    <h2></h2>
    <p></p>
  • {} (文本)
    示例: a{Click me}+ul>li{item$}*3
    效果:

      <a href="">Click me</a>
    <ul>
    <li>item1</li>
    <li>item2</li>
    <li>item3</li>
    </ul>

    示例2:p>{Click }+a{here}+{ to continue}
    效果:

      <p>Click <a href="">here</a>to continue</p>
  • ^ (生成上级元素)
    示例: div.list>ul>li^span
    效果:

      <div class="list">
    <ul>
    <li></li>
    </ul>
    <span></span>
    </div>
  • * (重复生成元素)
    示例: ul>li*5
    效果:

      <ul>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    </ul>
  • () (生成分组)
    示例: div.list>ul>li
    效果:

      <div id="main">
    <div id="header">
    <ul>
    <li></li>
    <li></li>
    </ul>
    </div>
    <div id="footer"></div>
    </div>

    示例2:(div>dl>(dt+dd)*3)+footer>p
    效果:

     <div>
    <dl>
    <dt></dt>
    <dd></dd>
    <dt></dt>
    <dd></dd>
    <dt></dt>
    <dd></dd>
    </dl>
    </div>
    <footer>
    <p></p>
    </footer>
  • $[N] (生成编号,单个编号默认从1开始,也支持多位编号,需要几位就写几个,默认从0开始,N为起始编号)
    示例: div>(ul>li.item$*2)+(ul>li.item$$@5*2)
    效果:

      <div>
    <ul>
    <li class="item1"></li>
    <li class="item2"></li>
    </ul>
    <ul>
    <li class="item05"></li>
    <li class="item06"></li>
    </ul>
    </div>
  • $@[-][N] (编号排序-为倒序,N为起始编号)
    示例: ul>li.item$$@-*2
    效果:

      <ul>
    <li class="item02"></li>
    <li class="item01"></li>
    </ul>

    示例: ul>li.item$$@5*3
    效果:

      <ul>
    <li class="item05"></li>
    <li class="item06"></li>
    </ul>
  • lorem[N] (生成随机内容,N为单词数量)
    示例: lorem
    效果:

      Elit neque iste aspernatur repellat ducimus alias incidunt nam nemo ducimus, id consequatur illo blanditiis! Necessitatibus minima repellat dignissimos eaque quo obcaecati quasi. Voluptatum nostrum harum corporis optio molestias nihil.

    示例: h2*3>lorem5 或者 (h2>lorem5)*3
    效果:

      <h2>
    Consectetur esse recusandae sapiente magnam.
    </h2>
    <h2>
    Lorem odio unde magni molestias!
    </h2>
    <h2>
    Amet perferendis praesentium facilis maxime.
    </h2>

实用html组合

    • 生成一个基本网站框架
      示例: #main_page>(div.header>div.logo+div.menu)+div.context+div.footer
      效果:

        <div id="main_page">
      <div class="header">
      <div class="logo"></div>
      <div class="menu"></div>
      </div>
      <div class="context"></div>
      <div class="footer"></div>
      </div>
    • 生成内容
      示例:.context>((span.title>lorem2)+(span.text>lorem10))*3
      效果:

         <div class="context">
      <span class="title">Elit quod?</span>
      <span class="text">Amet cumque perferendis a quasi dolor voluptatem repellat nihil lorem.</span>
      <span class="title">Adipisicing atque.</span>
      <span class="text">Consectetur deleniti quasi ea iste atque dolores rem nihil. Dolor.</span>
      <span class="title">Adipisicing laborum?</span>
      <span class="text">Sit nam sapiente eius dolorem accusamus, beatae impedit molestias expedita?</span>
      </div>
    • 生成菜单
      示例: div.menu>ul#navigation>li*5>a{Item $}
      效果:

        <div class="menu">
      <ul id="navigation">
      <li><a href="">Item 1</a></li>
      <li><a href="">Item 2</a></li>
      <li><a href="">Item 3</a></li>
      <li><a href="">Item 4</a></li>
      <li><a href="">Item 5</a></li>
      </ul>
      </div>
    • 可视化模式下生成菜单
      示例文本:

      首页
      新闻
      方案
      关于

      v进入可视模式,选中文本,再按<c-y>,,输入:
      nav>ul.nav>li.page$*>a
      效果:

      <nav>
      <ul class="nav">
      <li class="page1"><a href="">首页</a></li>
      <li class="page2"><a href="">新闻</a></li>
      <li class="page3"><a href="">方案</a></li>
      <li class="page4"><a href="">关于</a></li>
      </ul>
      </nav>

      再进一步,取消上面的操作:输入:
      ul.nav>li.page$*>img[alt=$#]+a[href='#']
      效果

      <ul class="nav">
      <li class="page1">
      <img src="" alt="首页">
      <a href="#">首页</a>
      </li>
      <li class="page2">
      <img src="" alt="新闻">
      <a href="#">新闻</a>
      </li>
      <li class="page3">
      <img src="" alt="方案">
      <a href="#">方案</a>
      </li>
      <li class="page4">
      <img src="" alt="关于">
      <a href="#">关于 </a>
      </li>
      </ul>
    • 自动添加图片尺寸
      <img src="test.jpg" alt="首页">
      光标移动到img标签内,按<c-y>i再按Enter即可
      效果:
      <img src="test.jpg" alt="首页" width="500" height="375">

Gvim+Emmet.vim 那些事。的更多相关文章

  1. Gvim 和vim 有什么区别

    Gvim 和vim 有什么区别 Gvim是windows的 vim是linux的黑色的命令符 Gvim是单独的窗口下的vim,像notepad一样. vim就是在黑乎乎的cmd窗口下的编辑器.wind ...

  2. Emmet.vim 教程

    Emmet.vim 教程 May 5, 2012 目录 1 下载 Emmet.vim 2 安装 Emmet.vim 3 使用 Emmet.vim 4 余话 Emmet 项目原先叫 Zen Coding ...

  3. 代码编辑器[0] -> Vim/gVim[1] -> Vim 的快捷键操作

    快捷键 / Shortcut Keys 1 基本操作 / Basic Operation Vim的基本操作主要可以参考以下几张图,参考链接, 命令行模式 i             从光标所在字符前插 ...

  4. 代码编辑器[0] -> Vim/gVim[2] -> Vim 的相关知识

    相关知识 / Relevant Knowledge 1 _vimrc编程 / _vimrc Program 1. 注释符", 用于注释 2. 关键词set, 用于设置功能等 3. 关键词im ...

  5. GVIM、VIM

    全世界最好的编辑器VIM之Windows配置篇 Highlight all search pattern matches Top 10 things Vi user need to know abou ...

  6. windows下的gvim和emmet 下载和安装 + "omnifunc is not set" solution?

    注意几个地方: 引导键是ctrl-y, 其他就是实际的操作键了, 如: n下一个插入点, N是上一个插入点(不是p), ctrl-y + i是自动为图片添加宽度和高度尺寸, 要点是要把光标移动到 im ...

  7. vim 中 也可以 直接安装 emmet 直接使用zen coding 生成 l指定个数的 lorem ipsum文字.

    超链接的写法: 当作为链接的文字, 比较长时, 整个作为链接 就显得不是 很适合. 可以取其中的某一个单词 作为 超链接的 关键字:如: click here to continue emmet中如何 ...

  8. 在vim中使用zencoding/Emmet

    zencoding在vim上的插件已经改名为Emmet.vim 1. 安装,推荐使用vundle插件管理器安装,在~/.vimrc中,添加:Bundle 'Emmet.vim',输入命令vim +Bu ...

  9. Vim:gvim安装配置(windows)

    Vim:gvim安装配置(windows) 一.gvim的特点: vim要求全部键盘操作,而gvim可以使用鼠标进行可视化操作,即gvim是vim的图形化界面: 二.gvim安装: 下载地址:http ...

随机推荐

  1. Cheatsheet: 2015 12.01 ~ 12.31

    Mobile Setting Up the Development Environment iOS From Scratch With Swift: How to Test an iOS Applic ...

  2. gdb进行多线程调试

    http://blog.csdn.net/xabc3000/article/details/6819867 http://www.cnblogs.com/xuxm2007/archive/2011/0 ...

  3. CSS背景样式

    CSS是级联样式表,用来表现HTML等文件样式的语言,CSS能够真正做到网页的表现与内容分离的设计语言,也就是说,做好了一款网页,可以通过另一个后缀名是css的文件进行修改其中的样式,不过在html的 ...

  4. Oracle PL/SQL实战代码下载

    最近在学习PL/SQL编程,算是一个进阶吧,书没带光盘,所以按照书中的地址去下载样例,无法下载,到图灵官网找到了源代码下载地址,无法下载的留邮箱,我发给大家 下载地址: http://www.itur ...

  5. Apache—DBUtils框架

    1.所需要jar包 commons-collections-2.1.1.jarmchange-commons-java-0.2.11.jarmysql-connector-java-5.1.18-bi ...

  6. linux重启命令学习

    Linux关闭和重启系统一般使用相同的命令可以实现. 在Linux系统下常用在关机/重启命令有shutdown.halt.reboot和init,但每个命令的内部工作过程是不同的. 1.shutdow ...

  7. HTML5 十大新特性(一)——语义标签

    说语义标签前先来理解下什么叫语义化,当下html是靠div+css来铸造页面的整体框架和结构的,通篇大量的div可读性极低,因此诞生了这些特殊的标签,简单地说就是见名知义,使页面更清晰,方便维护和开发 ...

  8. Web1.0、Web2.0、Web3.0的主要区别

    Web1.0:以静态.单向阅读为主,网站内信息可以直接和其他网站信息进行交互,能通过第三方信息平台同时对多家网站信息进行整合使用. Web2.0:以分享为特征的实时网络,用户在互联网上拥有自己的数据, ...

  9. WC2015 酱油记

    这是真·酱油记! Day0 因为我们在上海,所以只要坐高铁就可以了2333.到了火车站以后我们坐大巴到学军中学恩,结果坐大巴的时间和做坐高铁的时间差不做←_←. 吐槽了一下住宿环境和课程表就已经晚上了 ...

  10. WCF初探-11:WCF客户端异步调用服务

    前言: 在上一篇WCF初探-10:WCF客户端调用服务 中,我详细介绍了WCF客户端调用服务的方法,但是,这些操作都是同步进行的.有时我们需要长时间处理应用程序并得到返回结果,但又不想影响程序后面代码 ...