阅读条件:
编辑器爱好者,了解vim基本使用
篇一: 初识vim 篇二: vim的配置与使用 篇三: vim的不足和新的选择 篇四: spacemacs入门
<!--more-->
前言
编辑器是程序员手中最重要的兵器,充满Geek精神的程序员总是愿意折腾这些东西.
有人开玩笑,程序员分3种:
- 用vim的程序员
- 用Emacs的程序员
- 其他程序员
推荐阅读七个高效的文本编辑习惯,了解一个优秀的编辑器该有的特点.
人生若只如初见
在我念书的时候,接触的操作系统是Windows,那么自然而然的接触的第一个编辑器是微软的Visual Studio.
第一次听到vim的大名,应该是在鸟哥的Linux私房菜中讲了一部分关于vim的知识.其中只讲了关于vim的基础知识.
刚接触vim的同学,可以首先从vim tutor开始.这里推荐一个初学者网站openvim,可以学习vim的基本操作.
说实话当时并不感觉vim有多么强大,而且很不适应完全不使用鼠标的感觉.
作为一名偏向底层和系统的程序员,在工作以后不断听到vim的消息.慢慢深入其中,才发觉其中的瑰丽.
历史
熟悉vim,首先要了解一点vim的历史.
vim是从vi发展而来,而vi诞生于20世纪的70年代,是专门为程序员编写程序所设计的编辑器.
那个时候计算机刚刚蹒跚学步,还没有鼠标诞生.所以vim天然就支持全键盘操作,这就让程序员可以做到手随心动
.
这是优秀的编辑器的一个重要特点.在大脑高速运转的时候,如果突然需要双手离开键盘,那就太出戏了.
这也是我不太喜欢IDE的原因,常常不得不使用鼠标,对于习惯于全键盘操作的人来说,太不习惯了.
优秀编辑器的第一个要求: 手随心动
另外,在当时的计算机语言中,很多惯常的用语和我们现在不太一样.比如复制,当时使用的单词是yank
,对于这些情况,需要一定的时间来适应.
模式切换
提到了vim的手随心动,那就不得不提vim的模式切换.
普通的编辑器,一个按键往往就代表一个功能.如果需要实现一些特殊功能,基本都是需要组合按键的.像人们所熟知的Ctrl+c
代表复制
然而由于组合键数量有限,那么就不太可能实现太多的功能.
在vim当中存在多种模式,最为常用的是普通模式和插入模式.在这两种模式当中,同样的按键代表的截然不同的功能.比如j
,在输入模式就是一个普通j
字母.
而在普通模式这就是方向键向下.很多刚接触的人很不适应vim的移动方式,其实时间久了,你会发现vim的移动非常有效率.双手不需要离开键盘的核心区.
这里我们对核心的区的定义是,双手食指分别放在f
和j
上,在手腕不移动的情况下,所能覆盖的范围.
优秀编辑器的第二个要求: 双手基本不需要离开核心区
高效的快捷键
vim的快捷键往往会让人头疼,一下子接触了实在是太多了.
单单说说移动光标吧,上下左右全部可以用快捷键操作.前一个单词的队头/队尾,后一个单词的队头/队尾也是快捷键.
整句的队头/队尾,整篇的队头/队尾还是快捷键.向上翻一页/翻半页,向下翻一页/翻半页也还是快捷键.
甚至不翻页,单移动光标到当前页的队头/队中/队尾居然也是快捷键.
可以想见vim有多少快捷键,如果你熟悉的vim的快捷键,真的是可以为所欲为
.
优秀编辑器的第三个要求: 丰富的快捷键
丰富而优秀的插件
vim的插件之丰富,令人惊叹.根据不同的用途,按需取用合适的插件.
bundle是专门用于管理vim插件的插件.
vim aswsome则罗列了优秀的vim插件
优秀编辑器的第四个要求: 丰富的插件和优秀的插件管理器
强大的可定制性
除了vim标准的快捷键和插件提供的功能,vim允许用户使用vimscript
来定制属于他们自己的功能.
比如在输入模式下,我希望可以不切换到普通模式就可以直接向右移动,这在括号内输入时非常有用.
那么我们可以在.vimrc
中加入: imap <c-l> <Right>
,这代表了在插入模式下,将Ctrl+l
映射为向右移动.
优秀编辑器的第五个要求: 高度可定制化
其他的常规功能
其他的一些功能,比如:分屏,代码跳转,文件列表,函数列表.那已经是程序员编辑器的标配了.
那作为编辑器之神
的vim自然是具备的.
尾记
在学习vim的过程中,一本叫做vim实用技巧的书,对我帮助很大.这里推荐给有兴趣的朋友.
vim的学习曲线很陡峭,但是投入的时间是值得的.vim的模式切换已经被大量的编辑器所接纳和吸收.
下一篇,我将介绍如何基于spf13配置和使用vim.