Emmet.vim 教程

May 5, 2012

Emmet 项目原先叫 Zen Coding,2012年的时候,项目启用新名称 Emmet

Emmet 官方支持很多文本编辑器/IDE,但 Emmet.vim 并非 Emmet 亲生,它是由日本 Yasuhiro Matsumoto 开发。

下载 Emmet.vim#

你可以从两个地址下载,一是 Vim 插件站点,一是 Github

安装 Emmet.vim#

将下载的压缩包解压到 .vim 目录下:

  cd ~/.vim
unzip emmet-vim.zip

如果你使用 pathogen.vim 管理 Vim 插件:

  cd ~/.vim/bundle
unzip /path/to/emmet-vim.zip

或者直接从 Github 库克隆一份:

  cd ~/.vim/bundle
git clone http://github.com/mattn/emmet-vim.git

个人建议通过 Pathogen 或 Vundle 来安装。

使用 Emmet.vim#

以下内容译自 Emmet.vim tutorial(Aug 6, 2013),感谢作者

1. 展开

键入 div>p#foo$*3>a 然后按快捷键 <c-y>, – 表示 <Ctrl-y> 后再按逗号,不妨把 Ctrl-y看成 emmet 指令的启动,就像 Vim 的 : 表示进入命令行模式。

<div>
<p id="foo1">
<a href=""></a>
</p>
<p id="foo2">
<a href=""></a>
</p>
<p id="foo3">
<a href=""></a>
</p>
</div>

2. 外部包住

如下内容:

  test1
test2
test3

按大写的 V 进入 Vim 可视模式,“行选取”上面三行内容,然后按键 <c-y>,,这时 Vim 的命令行会提示 `Tags:`,键入 `ul>li*`,然后按 Enter,结果如下:

<ul>
<li>test1</li>
<li>test2</li>
<li>test3</li>
</ul>

而假如输入的 tag 是 blockquote’,则结果会变成下面这样:

<blockquote>
test1
test2
test3
</blockquote>

3.插入模式下根据光标位置选中整个标签

按 <c-y>d

4.插入模式下根据光标位置选中整个标签内容

按 <c-y>D

5.跳转到下一个编辑点

插入模式下按 <c-y>n

6.跳转到上一个编辑点

插入模式下按 <c-y>N

7.更新图片大小

移动光标到 img 标签。

  <img src="foo.png" />

然后按 <c-y>i,结果如下:

<img src="foo.png" width="32" height="48" />

注:仅适用本地图片,互联网上的图片并无法取得其大小。

8.合并行

选择下面的所有 `<li>` 行

<ul>
<li class="list1"></li>
<li class="list2"></li>
<li class="list3"></li>
</ul>

然后按 <c-y>m,结果如下:

<ul>
<li class="list1"></li><li class="list2"></li><li class="list3"></li>
</ul>

9.移除标签对

首先,移动光标到块中

<div class="foo">
<a>cursor is here</a>
</div>

然后在插入模式下按 <c-y>k,结果如下:

<div class="foo">
</div>

再次按 <c-y>k 则上面代码块中连 div 标签块都会被移除。

10.分割/合并标签

首先,移动光标到块中

<div class="foo">
cursor is here
</div>

在插入模式下按 <c-y>j:

<div class="foo"/>

再次按 <c-y>j:

<div class="foo">

</div>

11.切换注释

首先,移动光标到块中

<div>
hello world
</div>

插入模式中按 <c-y>/:

<!-- <div>
hello world
</div> -->

再按 <c-y>/ 则恢复:

<div>
hello world
</div>

12.从 URL 地址生成锚

将光标移至 URL

http://www.google.com/

按 <c-y>a

<a href="http://www.google.com"></a>

13.从 URL 地址生成引用文本

移动光标到 URL

http://github.com/

按 <c-y>A

<blockquote class="quote">
<a href="http://github.com/"></a><br />
<p>...</p>
<cite>http://github.com/</cite>
</blockquote>

14.安装 Emmet.vim

见文章头部。

15.为你所用的语言启用 Emmet.vim

你可以为你用的语言自定义行为。

# cat >> ~/.vimrc
let g:user_emmet_settings = {
\ 'php' : {
\ 'extends' : 'html',
\ 'filters' : 'c',
\ },
\ 'xml' : {
\ 'extends' : 'html',
\ },
\ 'haml' : {
\ 'extends' : 'html',
\ },
\}

余话#

除了以上帮助,你还可以按:进入 Vim 命令行模式,然后输入 help emmet 在新窗口中调用 Emmet 的帮助内容。

Emmet 在其他编辑器的触发快捷键一般是 Tab 或 Ctrl+e,如果你更习惯它们,也可以在 .vimrc 文件中加入下一行命令来修改它的触发快捷键:

let g:user_emmet_expandabbr_key = '<Tab>'

这样就可以按 Tab 来扩展了。

Emmet.vim 教程的更多相关文章

  1. 7张图片学习VIM教程

    7张图片学习VIM教程 张图片设置为桌面背景,时不时的能看上一眼.慢慢就学会VIM了. VIM lesson 1 VIM lesson 2 VIM lesson 3 VIM lesson 4 VIM ...

  2. 最好的vim教程莫过于vimtutor

    最好的vim教程莫过于vimtutor 直接运行vimtutor即可

  3. VIMTUTOR《VIM教程》

    =============================================================================== =      欢     迎     阅 ...

  4. vimtutor - Vim 教程

    总览 (SYNOPSIS) vimtutor 描述 (DESCRIPTION) Vimtutor 打开 Vim 教程. 它首先 考备 文件, 这样 就可以 在 不改变 原文件 的情况下 修改 当前文件 ...

  5. 《VIM教程》笔记

    一:vi ,vim, gvim简介 vi的功能是最弱的,它是*nix操作系统下最基本的文本编辑器. vim一开始的功能还不如vi,那个时候它的全称是"Vi IMitation",即 ...

  6. Gvim+Emmet.vim 那些事。

    转自:http://www.jianshu.com/p/67fa1e2114c5 背景 HTML和CSS的写法相对固定,而且重复的工作特别多,特别是尖括号实在是很烦.使用Emmet至少能帮你节省一半的 ...

  7. VIM教程

    vim 的环境设定参数 :set nu :set nonu             就是设定与取消行号啊! :set hlsearch :set nohlsearch     hlsearch 就是 ...

  8. [转载]VIM 教程:Learn Vim Progressively

    文章来源:http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/   Learn Vim Progressively   TL ...

  9. 经典 Linux & VIM 教程

    简明 Vim 练级攻略: http://coolshell.cn/articles/5426.html VIM快捷键: http://coolshell.cn/wp-content/uploads/2 ...

随机推荐

  1. 分析轮子(一)-ArrayList.java

    前言:之前也看过一些JDK源码,不过没有留下痕迹,经久年月就淡忘了,现在的时机也差不多了,想再看一次,并且记录下来自己的感想,于是从自己使用最多最熟悉的地方开始!并且看的过程中,我希望自己思考一下如下 ...

  2. Effective Java 第三版——63. 注意字符串连接的性能

    Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...

  3. 当使用 SelfHost 的 OWIN 承载 SignalR 时,重启 OWIN 后,SignalR 不能正常工作

    需要在初始化时,重新对 Resolver 赋值一个新的实例: public class Startup { public void Configuration(IAppBuilder app) { v ...

  4. [docker]通过阿里云源安装docker && flannel不通问题解决(try this guy out)

    docker清理容器 # 容器停止后就自动删除: docker run --rm centos /bin/echo "One"; # 杀死所有正在运行的容器: docker kil ...

  5. linux 修改图片的尺寸

    # convert -sample 50.png .png #把512*512的图片修改为500*500的图片 # which convert /usr/bin/convert # rpm -qf / ...

  6. java 查看SOAP请求报文

    log.info("ESB 请求URL = " + cachedEndpoint.toString());//打印SOAP请求报文 add by LinJC on 20170120 ...

  7. 【Zookeeper】连接ZooKeeper的方式

    使用客户端命令连接Zookeeper 连接Server 使用命令./zkCli.sh -server 127.0.0.1:2181 使用JAVA连接使用ZK POM添加引用 <dependenc ...

  8. 【转】Cowboy 开源 WebSocket 网络库

    原文链接: http://www.cnblogs.com/gaochundong/p/cowboy_websockets.html

  9. Bayesian RL and PGMRL

    简介: PGMRL: PGMRL就是把RL问题建模成一个概率图模型,如下图所示: 然后通过variational inference的方法进行学习: PGMRL给RL问题的表示给了一个范例,对解决很多 ...

  10. KMP,深入讲解next数组的求解(转载)

    前言 之前对kmp算法虽然了解它的原理,即求出P0···Pi的最大相同前后缀长度k:但是问题在于如何求出这个最大前后缀长度呢?我觉得网上很多帖子都说的不是很清楚,总感觉没有把那层纸戳破,后来翻看算法导 ...