VIM配置及基本命令
VIM配置及基本命令
随影求是 发表于4年前
VIM配置及基本命令
  • 发表于 4年前
  • 阅读 159
  • 收藏 1
  • 点赞 0
  • 评论 0

VIM配置

VIM配置我用的是spf13-vim。里面有很多好用的VIM插件,以及插件管理Vundle(下面会有介绍)。

spf13-vim安装

这里只介绍Mac OS X,Linux以及Unix的安装


  
  
  1. $ curl https://j.mp/spf13-vim3 -L > spf13-vim.sh && sh spf13-vim.sh

更新到最新版本


  
  
  1. $ curl https://j.mp/spf13-vim3 -L -o - | sh

spf13部分插件介绍

这里对自己平时常用到的几个插件进行介绍,下面所涉及到的快捷键有些只针对spf13配置。

EasyMotion

高效移动
快捷键:

  • ,,w向光标所在位置后方移动
  • ,,b向光标所在位置前方移动Easymotion

matchit.zip

对vim命令%的扩展

undotree

撤销指令的树状list。
快捷键:,u
它有两个窗口
上面的窗口:当前所处步骤会被标记为>seq<,当前标记的下一步会被标记{seq}。[seq]表示该程序的最后一次改变(不包括执行undotree撤销操作的改变)
下面的窗口:当前所处步骤是把什么改变成了什么。undotree

ctrlp

文件搜索。
快捷键: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 查看帮助文档

演示视频: http://happycasts.net/episodes/64?autoplay=true

NERDtree

文件系统导航。
快捷键:ctrl+e
打开该插件后可执行以下快捷键(比较重要的):

  • m操作当前指向文件(添加,删除,移动等操作)
  • t开一个新标签页中打开指向的文件
  • r刷新窗口
  • K到第一个节点
  • J到最后一个节点
  • u打开上层目录
  • o打开或关闭文件或目录
  • p到上层目录
  • P到根目录
  • q关闭NERDtreeNERDtree

Tagbar

标签导航
快捷键:,tt
使用这个插件需要要安装ctags插件,spf13并没有该插件。
安装ctags:


  
  
  1. brew install ctags

Tagbar

Airline

状态栏显示。Airline1Airline2Airline3

以下内容转自:

http://beiyuu.com/git-vim-tutorial/


基本操作

以下介绍的键盘操作,都是大小写敏感的,并且要在命令模式下完成,需注意:

以字为单位的移动

  • 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 Script选好你想要的插件;
  • 在VIM的配置文件中写一句 Bundle plugin_name;
  • 执行一下Vundle的初始化命令,插件就装好了;
  • 升级和卸载也是同样的简单;

Vundle的配置

Vundle的安装很简单:


  
  
  1. git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

然后写配置文件.vimrc:


  
  
  1. set nocompatible " be iMproved
  2. filetype off " required!
  3. set rtp+=~/.vim/bundle/vundle/
  4. call vundle#rc()
  5. " let Vundle manage Vundle
  6. " required!
  7. Bundle 'gmarik/vundle'
  8. " vim-scripts repos
  9. Bundle 'vim-plugin-foo'
  10. Bundle 'vim-plugin-bar'
  11. filetype plugin indent on " required!

其中Bundle后面的内容,就是插件的名字,插件维护在Vim-Script.org

然后,打开VIM之后,可以输入以下命令:


  
  
  1. "安装插件:
  2. :BundleInstall
  3. "更新插件:
  4. :BundleInstall!
  5. "卸载不在列表中的插件:
  6. :BundleClean
  7. "显示列表中所有的插件
  8. :BundleList

现在大部分的插件都已经从Vim.org迁移到了Vim-Script.org,而且很多作者也认领了自己的插件,直接在这个Github的项目下更新,一个比Vim.org更科学更有效的生态环境,就这样完美的形成了。

在此非常严重的感谢vim-scripts.org的创建者Scott Bronson,和Vundle的作者gmarik。他们的创新和分享精神,让这个世界又美好了一些。

也感谢业界良心Github。Vim-Scripts.org整站就是用Github Pages建立维护的,对于个人来说,这是很好的选择。

插件介绍

有了Vundle,再装插件就是件享受的事情了。


  
  
  1. #自动识别文件编码;
  2. Bundle 'FencView.vim'
  3. #解放生产力的神器,简单配置,就可以按照自己的风格快速输入大段代码。
  4. Bundle 'UltiSnips'

以上插件可以在vim-script.org找到源码和文档。

更多

关于VIM的使用,这篇博客仅仅介绍了很小的一部分,网络上还有大量朋友总结的心得,常学常有收获:

共有 人打赏支持
粉丝 36
博文 179
码字总数 6102
×
随影求是
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: