Gvim+Emmet.vim 那些事。
转自:http://www.jianshu.com/p/67fa1e2114c5
背景
HTML和CSS的写法相对固定,而且重复的工作特别多,特别是尖括号实在是很烦。使用Emmet至少能帮你节省一半的前期开发工作量,所以花点时间学习Emmet是很值得的。Emmet不是编程语言,而只是编辑器的插件,也可以自定义规则。
安装
Emmet支持多种编辑器,参见列表。由于我使用vim,这里只介绍vim的插件。
安装方法: 上面的页面介绍的很清楚
配置Emmet
- 只在html和css文件中起作用
let g:user_emmet_install_global = 0
autocmd FileType html,css EmmetInstal - 修改Emmet的触发键
let g:user_emmet_leader_key='<C-Z>'
- 只在html和css文件中起作用
教程:
教程里已经介绍的很清楚,我主要罗列常用写法。
用法
快捷键
注:<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 那些事。的更多相关文章
- Gvim 和vim 有什么区别
Gvim 和vim 有什么区别 Gvim是windows的 vim是linux的黑色的命令符 Gvim是单独的窗口下的vim,像notepad一样. vim就是在黑乎乎的cmd窗口下的编辑器.wind ...
- Emmet.vim 教程
Emmet.vim 教程 May 5, 2012 目录 1 下载 Emmet.vim 2 安装 Emmet.vim 3 使用 Emmet.vim 4 余话 Emmet 项目原先叫 Zen Coding ...
- 代码编辑器[0] -> Vim/gVim[1] -> Vim 的快捷键操作
快捷键 / Shortcut Keys 1 基本操作 / Basic Operation Vim的基本操作主要可以参考以下几张图,参考链接, 命令行模式 i 从光标所在字符前插 ...
- 代码编辑器[0] -> Vim/gVim[2] -> Vim 的相关知识
相关知识 / Relevant Knowledge 1 _vimrc编程 / _vimrc Program 1. 注释符", 用于注释 2. 关键词set, 用于设置功能等 3. 关键词im ...
- GVIM、VIM
全世界最好的编辑器VIM之Windows配置篇 Highlight all search pattern matches Top 10 things Vi user need to know abou ...
- windows下的gvim和emmet 下载和安装 + "omnifunc is not set" solution?
注意几个地方: 引导键是ctrl-y, 其他就是实际的操作键了, 如: n下一个插入点, N是上一个插入点(不是p), ctrl-y + i是自动为图片添加宽度和高度尺寸, 要点是要把光标移动到 im ...
- vim 中 也可以 直接安装 emmet 直接使用zen coding 生成 l指定个数的 lorem ipsum文字.
超链接的写法: 当作为链接的文字, 比较长时, 整个作为链接 就显得不是 很适合. 可以取其中的某一个单词 作为 超链接的 关键字:如: click here to continue emmet中如何 ...
- 在vim中使用zencoding/Emmet
zencoding在vim上的插件已经改名为Emmet.vim 1. 安装,推荐使用vundle插件管理器安装,在~/.vimrc中,添加:Bundle 'Emmet.vim',输入命令vim +Bu ...
- Vim:gvim安装配置(windows)
Vim:gvim安装配置(windows) 一.gvim的特点: vim要求全部键盘操作,而gvim可以使用鼠标进行可视化操作,即gvim是vim的图形化界面: 二.gvim安装: 下载地址:http ...
随机推荐
- js数组的一些操作
原文地址:flash很好玩 http://www.cnblogs.com/yuzhongwusan/archive/2008/12/15/1355378.html arr = new Array(1 ...
- 深入浅出设计模式——单例模式(Singleton Pattern)
模式动机对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务:一个系统只能有一个窗口管理器或文件系统:一个系统只能有一个计时工具或ID(序号) ...
- Android Gradle 完整指南
为什么需要学Gradle? Gradle 是 Android 现在主流的编译工具,虽然在Gradle 出现之前和之后都有对应更快的编译工具出现,但是 Gradle 的优势就在于它是亲儿子,Gradle ...
- 20160907_Redis问题
ZC: 今天发现,redis服务器 启动不了了... 下面是 排查/处理过程. 1.查了一遍配置,看了一下前面的博客文章,貌似 这一套流水操作下来应该没问题... 然而,就是起不了... 1.1.安装 ...
- transition&transform,CSS中过度和变形的设置
设置样式的过度效果transition-property: none/all; transition-duration:2s;运动时间,默认是0秒 transition-delay:0s; 延迟时间默 ...
- myeclipse maven pom.xml 配置错误
http://www.oschina.net/question/2265006_219341#tags_nav maven pom.xml 配置文件错误 腾讯云消息队列CMQ架构解析> ...
- Java简介
命令行输入参数不是在代码中设置输入的,而是这样做:选中你java项目中的java---右击----Run As---Run Configurations---Arguments----填入参数(多个参 ...
- matlab实现感知机算法--统计学习小灶
clear all; clc; %% %算法 %输入:训练数据集T = {(x1,y1),(x2,y2),...,(xn,yn)};学习率η %输出:w,b;感知机模型f(x) = sign(w*x+ ...
- int转string
#include<iostream> #include<sstream> #include<string> using namespace std; int mai ...
- Android学习(未完)
Android四大组件1.Activity活动活动Activity是一种可以包含用户界面的组件,主要用于和用户进行交互活动之间使用intent进行通信,激活组件,分为1.显式intent2.隐式int ...