Vim 使用体验

2018.02.10更新

本文主要对博主多年的vim使用经验做下总结,主要介绍博主工作中最常用到的一些VIM使用技巧。

首先有个“入门秘诀”博主觉得有必要提下:

  • 要想比较快速地入门VIM及真正地在日常工作中使用起来,最好是能够在周围找到一个已经把VIM当成主要编辑器的同事,这样就有一个活人Demo可以参考,可以了解到VIM具体可以做到什么程度(有句话这样说“人们没见到汽车前总会以为马车已经跑得很快了”)。

博主就很有幸在第一份工作中遇上这么一个demo同事,不然可能到现在还只是停留在“觉得vim好像很牛逼的样子,自己却总是没办法好好地,长久地把它用起来”这样的阶段。

以下正文。


VIM 简介

VIM 是一款跨平台,开源的文本编辑器,其主要特点有:

  1. 高效无打断的编辑模式
    使用VIM时,依靠各类快捷键可以基本上摆脱鼠标完全使用键盘对文件进行编辑,从而避免编码过程中思路因频繁移动鼠标之类的行为被打断。
  2. 极强的扩展性
    vim支持ctags、taglist等各种可以帮助提升编辑效率的插件与主题,另外VIM的配置功能也十分强大,通过配置_vimrc文件及使用各类插件可以把VIM DIY成最适合自己的编辑器。
  3. 其他

如何快速入门

Tips:VIM 的基本操作命令快速入门有几个比较好的途径:

  1. 花20分钟时间看完本文,然后去实践。
  2. vimtutor --> 在Linux terminal输入vimtutor可以进入一个官方的入门教程,花半个小时左右过一遍即可,然后去实践。
  3. VIM adventures --> 这是一个在线的vim小游戏,寓教于乐,每通过一个挑战基本都可以解锁一个VIM技能,然后去实践。

基本操作

VIM支持多种不同的工作模式,这边介绍常见的3种模式:普通模式插入模式命令模式

普通模式

第一打开VIM时,模式进入的是普通模式,VIM的大部分编辑操作都是在该模式下进行的,该模式支持常见快捷键有:

  • hjkl -> 右下上左
  • i -> 在当前位置前插入
  • a -> 在当前位置后插入
  • o -> 在但前位置下方插入
  • O -> 在当前位置上方插入
  • dd -> 删除行 (可通过与数字组合来执行多行操作,如:3dd可以删除3行)
  • x -> 删除字符
  • r -> 替换字符
  • yy -> 复制
  • p -> 黏贴
  • [num] +G -> 跳至[num]行(gg = 跳至文件开头, G = 跳至文件结尾)
  • { -> 跳至前一个空行
  • } -> 跳至后一个空行
  • ctrl + o -> 跳至前一次编辑的地方
  • ctrl + i -> 回跳至后一次编辑的地方(相对ctrl + o)
  • v -> 批量选择
  • ctrl + v -> 批量块选择
  • shift + v -> 批量行选择

插入模式

  1. 在普通模式下按任何插入命令均可进入插入模式(如:i,a,o,O)
  2. 在插入模式下按ESC键可以退回到普通模式

命令模式

在普通模式下通过shift + :可以进入命令模式,命令模式的常见操作如下:

  • :w -> 保存
  • :q -> 退出
  • :wq! -> 强制保存并退出
  • :help -> 帮助手册
  • :%s/x/y/g -> 替换(将全文的x替换成y)
  • :/ + [内容] -> 查找命令(输入/后输入要查找的关键字,用n/N可以在找到的关键字之间进行跳转)
  • :!+ [命令] -> 运行外部命令(比如make)

关于以上命令的更具体的操作可以使用:help + 命令方式查询,


常用插件

这里介绍几个常用插件(默认的的快捷键可参看插件对应的说明文档)。

  • Vundle
    • 插件管理工具,用来更新vim插件十分方便。只需要一个合适的vimrc + 这个插件即可完成个人VIM环境的配置。
    • 下载方法: git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
  • CTAG
    • 提供函数/变量调转功能(使用ctags -R 生成文件关联,使用ctrl + ], 跳转至函数/变量定义处)
  • tagList
    • 函数名列表(使用tt开关taglist)
  • wmanager
    • 提供文件浏览窗口(使用wm 开关wmanager)
  • color theme
    • 颜色主题,比较经典的如monokai,这里用的是jellybeans.
  • markdown
    • 用于markdown语法高亮
  • doxygen
    • 用于自动生成doxygen注释

这些插件基本上都能在vim官网找到。


VIM脚本语法

要有效地利用vim配置文件,可以去了解下vim脚本的编写方式:learn VIM script,通过VIM脚本语言可以自己编写VIM插件。


如何快速配置VIM

快速配置VIM只需要三个步骤,这里以Linux为例:

  1. 拷贝.vimrc文件到~/.vimrc (博主的vimrc)
  2. git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
  3. 打开VIM,执行PluginInstall,等所有插件都下载完毕之后,重新打开VIM即可得到一个看起来好牛逼的VIM环境了。

效果图

这里附上配置后的VIM效果图供参考:


vim for c
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容