图片 8

插件和使用技巧,前端开发工具系列

2.zencoding.vim

zencoding.vim 后来改名为Emmet.vim,主要功能是实现代码的快速编写。

具体教程可以参见官方的网站

个人感受是做页面重构的时候用得比较多,通过命令可以快速生成html的结构,提高了前端开发的生产力。

NERD_tree.vim
[NERD_tree.vim]-主要功能是一款文件浏览器,可以查看文件目录结构打开相应的文件

Vim Powerline

Vim
Powerline是一个显示vim状态栏插件,它能够显示vim模式、操作环境、编码格式、行数/列数等信息

图片 1Vim
Powerline.png

1.mark.vim

mark.vim主要的功能是变量的高亮。

选中要高亮的词,使用 \m
来使其高亮,多个词的高亮会显示为不同的颜色,在不需要查找的时候以及代码review的时候使用效果还是挺不错的,

使用\n可以去除所选的词的高亮。

更多详情可以点击插件主页了解。

ps: 查找单词可以使用 * 这个命令来进行快速搜索

下面总结一些命令
ctrl + w + h 光标 focus 左侧树形目录ctrl + w + l 光标 focus
右侧文件显示窗口ctrl + w + w 光标自动在左右侧窗口切换 ctrl + w + r
移动当前窗口的布局位置

图片 2vim_cheat_sheet_for_programmers.png

3.ctrlp.vim

ctrlp.vim主要功能是对文件以及buffer进行模糊查询,快速打开文件。

操作实例如下图所示:

图片 3

图片 4

在知道文件名的情况下,使用ctrl +
p打开此插件,输入文件名,实则是文件名开头几个字母就可以快速打开文件。

ps:如果当前的文件已经保存好,那么会直接替换成搜索到的文件,如果没有保存的,会进行窗口的分隔类似与sp的命令。

所以在对比文件的情况下我一般会用vsp来分割窗口或者tabnew一个新的tab,再打开新的文件。

如果需要查其他目录或者忘记了文件名的话,就可以使用下面的插件NERD_tree了。

commentary.vim
[commentary.vim]-主要功能是可以批量注释单行或多行以及去除注释;
gc:Visual模式下可以注释选中的行gcc:普通模式下可以快速注释一行gcu:可以撤销注释
multiple_cursors.vim
[multiple_cursors.vim]-多行、多光标编辑
通过按 Ctrl + n 来多重选取。一旦选取完成,便可配合 Vim
既有的命令对其进行编辑处理。最后按 Esc
可以退出多重选取状态。此外,你也可以使用 MultipleCursorsFind
命令通过正则表达式来进行多重选取和编辑。
ctrlp.vim
[ctilp.vim]-主要功能是对系统文件进行搜索
ctrl + j/k 进行上下选择ctrl + x 在当前窗口水平分屏打开文件ctrl + v 同上,
垂直分屏ctrl + t 在tab中打开
neocomplcache
[neocomplcache.vim]-自动补全插件
ctrl+n-对补全代码向下选择ctrl+p-对补全代码向上选择
emmet.vim
[emmet.vim]-HTML超级编写利器,利用简写语法达到编写目的。
Emmet的基本用法:先写简写形式,然后用”<Ctrl+y>,”将其转成HTML代码基本规则:(1):E
代表HTML标签(2):E#id 代表标签E有id属性(3):E.class
代表E有class属性(4):E[attr=foo] 代表某个特定属性(5):E{info}
代表标签E包含的内容是info(6):E>N 代表N是E的子元素(7):E+N
代表N是E的同级元素(8):E^N 代表N是E的上级元素
vim-surround
[vim-surround]-这个插件可以快速的为字符串包围/改变或去除引号/括号或者HTML标签
为单个单词包围
ysiw + ‘/”/(/[/{ :在命令模式下, 就可以为光标下的一个单词包围上
‘/”/(/[/{比如ysiw’ :为光标下的单词包围上单引号ysiw”
:为光标下单词包围上双引号, 依此类推.vim-surround 同时还支持包围html标签,
将光标放到某单词试试下面指令:ysiwysiw<p class=”meta”>yssb
:包围一行,可以快速为一行包围圆括号,.yss + ‘/”/(/[/{ :
可以为正行快速包围相应的引号/括号比如yss” :为一行包围双引号
更改包围
cs :可以更改包围,比如cs'” :是将单引号变成双引号cs”(
:是将双引号变成圆括号vim-surround支持将括号或者引号变更为html标签,
试试命令cs’:将单引号换成
标签
去除包围
ds:指令可以取出包围, 后面需跟包围的内容,ds”:是去除双引号包围, “

if filereadable(expand("~/.vimrc.bundles")) source ~/.vimrc.bundlesendif

5.neocomplcache.vim

neocomplcache.vim主要功能是进行代码补全,

优点是对上下文进行索引,结果保存到缓存中,自动补全的效率比较高,另外匹配的也比较精准。

补全效果如下图展示:

图片 5

图片 6

im中的代码补全插件比较多,一般补全的智能性依赖于插件的字典,变量缓存机制。

从这点看neocomplcache也是挺不错的,另外智能读读取路径的功能也是挺赞的。

mark.vim
[mark.vim]-主要的功能是变量的高亮,允许你在文本中放置自定义的标记
在编辑的时候,你忽然想起来需要修改同一个文档的另一个地方,但又想记住当前的位置,以便稍后再回来编辑。应该怎么做呢?vim中我们可以对文本进行标记,这个概念类似于visual
studio中的书签,目的是方便vim编辑器在文档的不同位置间跳转。正常情况下,这意味着要移动到那个位置,编辑,然后再移回来。这样很费事,也容易忘记刚才所在的位置。有更聪明的办法。移动光标到下述文本的第5行(John
Lennon的名言)。用ma创建一个名为’a’的标记。移动光标到任一地方,比如,4j。按下’a(即,单引号加上标记的名字),瞧Vim跳到了刚才做标记的那一行的行首。如果要跳到做标记的位置,按下‘a(即,上排数字键1左边那个键)。可以使用任一字母(a-zA-Z)去命名一个标记,意味着一个文件里最多可以有52个命名标记。 添加标记 将光标移到某一行,使用 ma 命令添加标记。其中,m 是标记命令,a 是所做标记的名称。可以使用小写字母 a-z 或大写字母 A-Z 中的任意一个做为标记名称。小写字母的标记,仅用于当前缓冲区;而大写字母的标记,则可以跨越不同的缓冲区。例如,你正在编辑 File1,但仍然可以使 用'A 命令,移动到 File2 中创建的标记A。跳转标记 创建标记后,可以使用 'a 命令,跳转到指定标记行的首个非空字符。这里 ' 是单引号。也可以使用 'a 命令,移到所做标记时的光标位置。这里'是反引号(也就是数字键1左边的那一个)。列出标记 利用:marks命令,可以列出所有标记。这其中也包括一些系统内置的特殊标记(Special marks):. ——最近编辑的位置0-9——最近使用的文件∧ ——最近插入的位置' ——上一次跳转前的位置" ——上一次退出文件时的位置[ ——上一次修改的开始处] ——上一次修改的结尾处删除标记 如果删除了做过标记的文本行,那么所做的标记也就不存了。我们不仅可以利用标记来快速移动,而且还可以使用标记来删除文本,例如:在某一行用ma做了标记,然后就可以使用d'a来删掉这一行。当然,我们也可以使用y'a命令就可以来复制这一行了。使用:delmarks a b c命令,可以删除某个或多个标记;而:delmarks! 命令,则会删除所有标记。利用:help mark-motions命令,可以查看关于标记的更多帮助信息。命令小结m ——创建标记' ——移动到标记的文本行首
——移动到标记的光标位置:marks ——列示所有标记:delmarks
——删除指定标记:delmarks! ——删除所有标记

Molokai

Molokai是vim颜色主题,效果如下

图片 7Molokai
Color Scheme for Vim.png

对于入门vim基本命令可以参考 简明 Vim
练级攻略,以下是本人关于移动光标插入/修改删除复制粘帖撤销和恢复等常用命令

  • 移动光标
  1. 对于在行内移动,通过使用f/F + 字符来移动到特定的字符,然后再使用.
    来重复执行命令;f表示向前移动,F表示向后移动。如果想直接移动到行首或行尾,使用^$
  2. 对于在多行移动,就有多种选择:第一种是通过ggG行数 + G指定行数来移动,gg表示移动文件的第一行,G表示移动文件的最后一行,行数 + G表示移动到特定的行。第二种就是通过正则搜索的方式来移动,/string表示正向查找,?string表示反向查找,n查找下一个匹配的结果,N表示上一个匹配的结果,按up/down可以浏览搜索历史。第三种就是使用标记来移动,m + {a-z}标记位置(适用于单个文件,如果是多个文件,使用大写字母{A-Z}),“{mark}移动到标记位置的列,‘{mark}移动到标记位置的行首,还有一些特殊的标记,‘`表示跳转前光标的位置
  • 选择文本v不规则选择V按行选择Ctrl + V按列选择

  • 插入/修改i在当前字符前面插入I在行首插入a在当前字符后面插入A在行尾插入o在当前行的下一行插入O在当前行的上一行插入

r更改当前的字符R更改多个字符cw/caw更改单词cf + 字符更改从当前字符到指定字符c$更改从当前字符到行尾cc更改整行

  • 删除x删除字符df + 字符删除从当前字符到指定字符dw/daw删除单词d$删除从当前光标到行尾dd删除一行

  • 剪切与粘帖dd + pdelete一行,然后放在当前光标下方dd + Pdelete一行,然后放在当前光标上方dw + p
    delete单词,然后放在当前光标后面dw + P
    delete单词,然后放在当前光标前面p/P可接受计数前缀,重复粘贴

  • 复制yw复制单词yf复制从当前字符到指定字符y$复制当前光标到行尾yy复制整行

  • 撤销和恢复u撤销ctrl + r重做

  • 重复操作数字+action表示执行某个操作多少次.重复上一个操作

  • 宏录制q + 寄存器开始录制录制动作``q停止录制@ + 寄存器 / @@replay被录制的宏

  • Vim配置从零搭建和配置OSX开发环境将你的Vim 打造成轻巧强大的IDE
  • Vim插件vim中的杀手级插件:
    vundle谁说Vim不是IDE?vim中的杀手级插件: YouCompleteMe
  • Vim入门和使用技巧简明 Vim 练级攻略

4.NERD_tree.vim

NERD_tree.vim主要功能是一款文件浏览器,可以查看文件目录结构打开相应的文件。

具体演示如下图所示:

图片 8

我是使用绑定的快捷键F4来打开文件浏览器,光标在文件浏览器中可以用jk来移动,回车键可以打开文件,按q可以退出文件浏览器。

快捷键
o 在已有窗口中打开文件、目录或书签,并跳到该窗口go 在已有窗口
中打开文件、目录或书签,但不跳到该窗口t 在新 Tab
中打开选中文件/书签,并跳到新 TabT 在新 Tab
中打开选中文件/书签,但不跳到新 Tabi split
一个新窗口打开选中文件,并跳到该窗口gi split
一个新窗口打开选中文件,但不跳到该窗口s vsplit
一个新窗口打开选中文件,并跳到该窗口gs vsplit 一个新
窗口打开选中文件,但不跳到该窗口! 执行当前文件O 递归打开选中
结点下的所有目录x 合拢选中结点的父目录X 递归 合拢选中结点下的所有目录e
Edit the current dif双击 相当于 NERDTree-o中键 对文件相当于
NERDTree-i,对目录相当于 NERDTree-eD 删除当前书签P 跳到根结点p
跳到父结点K 跳到当前目录下同级的第一个结点J
跳到当前目录下同级的最后一个结点k 跳到当前目录下同级的前一个结点j
跳到当前目录下同级的后一个结点C 将选中目录或选中文件的父目录设为根结点u
将当前根结点的父目录设为根目录,并变成合拢原根结点U
将当前根结点的父目录设为根目录,但保持展开原根结点r 递归刷新选中目录R
递归刷新根结点m 显示文件系统菜单
#!!!然后根据提示进行文件的操作如新建,重命名等cd 将 CWD
设为选中目录I 切换是否显示隐藏文件f 切换是否使用文件过滤器F
切换是否显示文件B 切换是否显示书签q 关闭 NerdTree 窗口? 切换是否显示
Quick Help
命令模式
:tabnew [++opt选项] [+cmd] 文件 建立对指定文件新的tab:tabc
关闭当前的 tab:tabo 关闭所有其他的 tab:tabs 查看所有打开的 tab:tabp
前一个 tab:tabn 后一个 tab标准模式下:
gT 前一个 tabgt 后一个 tabMacVim 还可以借助快捷键来完成 tab
的关闭、切换cmd+w 关闭当前的 tabcmd+{ 前一个 tabcmd+} 后一个 tab

如果你需要配置vim,只需在Home目录创建一个~/.vimrc文件即可以配置vim了,可以参考我的vimrc配置文件。由于我需要安装插件,并且将需要安装的插件列表分离到另外一个文件~/.vimrc.bundles,这个文件也是存放在Home目录,文件内容可以参考vimrc.bundles。若想加载~/.vimrc.bundles文件,必须在~/.vimrc文件加入以下代码片段: