VIM配置
VIM配置我用的是。里面有很多好用的VIM插件,以及插件管理(下面会有介绍)。
spf13-vim安装
这里只介绍Mac OS X,Linux以及Unix的安装
$ curl https://j.mp/spf13-vim3 -L > spf13-vim.sh && sh spf13-vim.sh
更新到最新版本
$ curl https://j.mp/spf13-vim3 -L -o - | sh
spf13部分插件介绍
这里对自己平时常用到的几个插件进行介绍,下面所涉及到的快捷键有些只针对spf13配置。
高效移动
快捷键:- ,,w向光标所在位置后方移动
- ,,b向光标所在位置前方移动
对vim命令%的扩展
撤销指令的树状list。
快捷键:,u 它有两个窗口 上面的窗口:当前所处步骤会被标记为>seq<,当前标记的下一步会被标记{seq}。[seq]表示该程序的最后一次改变(不包括执行undotree撤销操作的改变) 下面的窗口:当前所处步骤是把什么改变成了什么。![undotree](http://static.oschina.net/uploads/img/201312/30191627_P4Zh.png)
文件搜索。
快捷键:ctrl+p- F5刷新窗口
- ctrl+r 正则表达式模式(可以使用正则表达式搜索)
- ctrl+d 搜索只匹配文件名,忽略目录
- ctrl+j 窗口中向下移动
- ctrl+k 窗口中向上移动
- ctrl+t 开一个新标签页打开指向的文件
- ctrl+v 当前窗口纵向分割打开指向文件
- ctrl+x 当前窗口横向分割打开指向文件
- ctrl+z 给多个文件进行标记(取消标记),通过ctrl+o打开标记的文件
- ctrl+forctrl+b 切换模式,file模式就是默认模式,快速打开文件。buffers模式,快速打开缓冲区。mru files模式,快速打开最近打开的文件。
- ctrl+y 在ctrlp窗口输入一个未被创建的文件名,再按该快捷键,可以在当前目录下创建一个新文件,或者输入不存在的目录以及该目录下的文件,这样会在当前目录下创建一个子目录和里面的文件。
- :h ctrlp 查看帮助文档
演示视频:
文件系统导航。
快捷键:ctrl+e 打开该插件后可执行以下快捷键(比较重要的):- m操作当前指向文件(添加,删除,移动等操作)
- t开一个新标签页中打开指向的文件
- r刷新窗口
- K到第一个节点
- J到最后一个节点
- u打开上层目录
- o打开或关闭文件或目录
- p到上层目录
- P到根目录
- q关闭NERDtree
标签导航
快捷键:,tt 使用这个插件需要要安装ctags插件,spf13并没有该插件。 安装ctags: brew install ctags
状态栏显示。
以下内容转自:
基本操作
以下介绍的键盘操作,都是大小写敏感的,并且要在命令模式下完成,需注意:
以字为单位的移动
- h 向左移动一个字
- j 向下移动一行
- k 向上
- l 向右
这四个键在右手最容易碰到几个位置,最为常用。
以词为单位的移动
- w 下一個word w(ord)
- W 下一個word(跳过标点)
- b 前一個word b(ackward)
- B 前一个word(跳过标点)
- e 跳到当前word的尾端 e(nd)
行移动
- 0 跳到当前行的开头
- ^ 跳到当前行第一个非空字符
- $ 跳到行尾
助记:0(第0个字符),^和$含义同正则表达式
段落移动
- { 上一段(以空白行分隔)
- } 下一段(以空白行分隔)
- % 跳到当前对应的括号上(适用各种配对符号)
跳跃移动
- /xxxx 搜索xxxx,然后可以用n下一个,N上一个移动
- # 向前搜索光标当前所在的字
- * 向后搜索光标当前所在的字
- fx 在当前行移动到光标之后第一个字符x的位置 f(ind)x
- gd 跳到光标所在位置词(word)的定义位置 g(o)d(efine)
- gg 到文档顶部
- G 到文档底部
- xG 跳到第x行(x是行号),或者使用:x
- ctrl+d 向下翻页 d(down)
- ctrl+u 向上翻页 u(p)
- zt 将当前行设置为屏幕首行
- zz 将当前行设置为屏幕中间行
- zb 将当前行设置为屏幕尾行
基本编辑
修改
- i 在光标当前位置向前插入 i(nsert)
- I 在本行第一个字符前插入
- a 在光标当前位置向后插入 a(fter)
- A 在本行末尾插入
- o 向下插入一行
- O 向上插入一行
- u 撤销上一个操作
- r 替换当前字符
- :w 保存
- :q 退出
- :q! 强制退出,不保存修改
- :x 保存并退出,相当于:wq
- :! 系统命令执行一个系统命令并显示结果
- :sh 切换到命令行,使用ctrl+d切换回vim
删除
- x 删除当前字符
- dd 删除当前行 d(elete)
- dw 删除当前光标下的词 d(elete)w(ord)
复制粘贴
- yy 复制当前行 y(ank)
- yw 复制当前光标下的词 y(ank)w(ord)
- p 粘贴 p(aste)
- P 粘贴在当前位置之前
进阶操作
限于篇幅,在这里我仅介绍下我非常常用的几个操作。
重复操作
因为VIM所有的操作都是原子化的,所以把这些操作程序化就非常简单了:
- 5w 相当于按五次w键;
- 6j 下移6行,相当于按六次j;
- 3J 大写J,本来是将下一行与当前行合并,加上数量,就是重复操作3次;
- 6dw和d6w 结果是一样,就是删除6个word;
- 剩下的无数情况,自己类推吧。
高效编辑
- di" 光标在""之间,则删除""之间的内容
- yi( 光标在()之间,则复制()之间的内容
- vi[ 光标在[]之间,则选中[]之间的内容
- 以上三种可以自由组合搭配,效率奇高,i(nner)
- dtx 删除字符直到遇见光标之后的第一个x字符
- ytx 复制字符直到遇见光标之后的第一个x字符
标记和宏(macro)
- ma 将当前位置标记为a,26个字母均可做标记,mb、mc等等;
- 'a 跳转到a标记的位置;
- 这是一组很好的文档内标记方法,在文档中跳跃编辑时很有用;
- qa 将之后的所有键盘操作录制下来,直到再次在命令模式按下q,并存储在a中;
- @a 执行刚刚记录在a里面的键盘操作;
- @@ 执行上一次的macro操作;
- 宏操作是VIM最为神奇的操作之一,需要慢慢体会其强大之处;
VIM的基本操作,可以挖掘的东西非常多,不仅仅需要记忆,更需要自己去探索总结,熟练之后,效率会大幅度提升。后面会给出一些参考链接。
插件管理
Vundle
VIM的强大不仅仅体现在操作的高效率,更有强大而充沛的插件做支援,插件丰富了之后,就面临查找和管理的问题。
Vundle的逻辑是这样的:
- 在选好你想要的插件;
- 在VIM的配置文件中写一句 Bundle plugin_name;
- 执行一下Vundle的初始化命令,插件就装好了;
- 升级和卸载也是同样的简单;
Vundle的配置
的安装很简单:
git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
然后写配置文件.vimrc:
set nocompatible " be iMproved filetype off " required! set rtp+=~/.vim/bundle/vundle/ call vundle#rc() " let Vundle manage Vundle " required! Bundle 'gmarik/vundle' " vim-scripts repos Bundle 'vim-plugin-foo' Bundle 'vim-plugin-bar' filetype plugin indent on " required!
其中Bundle后面的内容,就是插件的名字,插件维护在。
然后,打开VIM之后,可以输入以下命令:
"安装插件: :BundleInstall "更新插件: :BundleInstall! "卸载不在列表中的插件: :BundleClean "显示列表中所有的插件 :BundleList
现在大部分的插件都已经从迁移到了,而且很多作者也认领了自己的插件,直接在这个Github的项目下更新,一个比Vim.org更科学更有效的生态环境,就这样完美的形成了。
在此非常严重的感谢vim-scripts.org的创建者,和的作者。他们的创新和分享精神,让这个世界又美好了一些。
也感谢业界良心。Vim-Scripts.org整站就是用建立维护的,对于个人来说,这是很好的选择。
插件介绍
有了Vundle,再装插件就是件享受的事情了。
#自动识别文件编码; Bundle 'FencView.vim' #解放生产力的神器,简单配置,就可以按照自己的风格快速输入大段代码。 Bundle 'UltiSnips'
以上插件可以在找到源码和文档。
更多
关于VIM的使用,这篇博客仅仅介绍了很小的一部分,网络上还有大量朋友总结的心得,常学常有收获:
- ,有VIM的各种助记图,可以作为桌面