博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VIM配置及基本命令
阅读量:7138 次
发布时间:2019-06-28

本文共 3710 字,大约阅读时间需要 12 分钟。

hot3.png

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向光标所在位置前方移动Easymotion

对vim命令%的扩展

撤销指令的树状list。

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

文件搜索。

快捷键: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关闭NERDtreeNERDtree

标签导航

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

 
brew install ctags

Tagbar

状态栏显示。Airline1Airline2Airline3

以下内容转自:

基本操作

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

以字为单位的移动

  • 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的各种助记图,可以作为桌面

转载于:https://my.oschina.net/yangphere/blog/188960

你可能感兴趣的文章
Oracle HA 之 测试RAC的功能
查看>>
CentOS7 Failed to start LSB: Bring up/down
查看>>
关于程序猿的几个阶段!
查看>>
Linux内核中断处理体系分析
查看>>
FlatBuffers要点
查看>>
jquery给input标签添加data-options属性
查看>>
CALayer & bitmap Content
查看>>
openstack_swift源代码分析——Swift单机部署
查看>>
创业建议干货分享
查看>>
5个经常使用的开源聊天应用
查看>>
Android开发中string.xml文件的使用
查看>>
springboot-21-maven多环境打包
查看>>
PhoneGap3+版本号的安装、配置和使用[图]
查看>>
P1118 [USACO06FEB]数字三角形Backward Digit Su…
查看>>
FEC之我见一
查看>>
使用JPA中@Query 注解实现update 操作
查看>>
判断一个枚举值是否属于某个枚举类
查看>>
Spring MVC+Mybatis 多数据源配置
查看>>
hdu 4287 Intelligent IME
查看>>
NYOJ15-括号匹配(二)-区间DP
查看>>