Vim 是从 vi 发展出来的一个文本编辑器,其代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
Vi 是老式的字处理器,功能虽然已经很齐全了,但还有可以进步的地方。Vim 可以说是程序开发者的一项很好用的工具。对于大多数用户来说,Vim 刚开始学习的时候可能会进展缓慢,但是一旦掌握一些基本操作之后,就能大幅度提高编辑效率。今天我们就来简单介绍下 Vim 及其基本操作。
Vim 的三种模式
从 vi 派生出来的 Vim 具有多种模式,这种独特的设计容易使初学者产生混淆。几乎所有的编辑器都会有插入和执行命令两种模式,并且大多数的编辑器使用了与 Vim 截然不同的方式:命令目录(鼠标或者键盘驱动),组合键(通常通过 ctrl 键和 alt 键组成)或者鼠标输入。Vim 和 vi 一样,仅仅通过键盘来在这些模式之中切换。这就使得 Vim 可以不用进行菜单或者鼠标操作,并且最小化组合键的操作。对文字录入员或者程序员可以大大增强速度和效率。
基本上,Vim 可以分为命令模式、插入模式和底线模式三种模式,各模块的功能区分如下:
命令模式:
使用 vim 编辑文件时,默认处于命令模式。在此模式下可以使用上、下、左、右键或者 k、j、h、l 键进行光标的移动,还可以对文件内容进行复制、粘贴、替换、删除等操作。
插入模式:
在该模式下可以对文件进行写的操作,类似于 windows 的文档操作。进入插入模式的方法是在命令模式下按 "i"或者"a"或者"o",编写完成后按 Esc 即可回到命令模式。
i:从光标目前所在位置插入所输入的字符
a:从目前光标所在位置的下一个字符处插入所输入的字符
o:插入新的一行从行首开始输入
底线模式:
如果要保存、查找或者替换一些内容等,就需要进入底线模式。底线模式的进入方法为:在命令模式下按":"键,Vim 窗口的左下方会出现一个":"符号,这时就可以输入相关的指令进行操作了。指令执行后会自动返回命令模式。
Vim 的基本操作
一、打开文件或者新建文件
统一命令:vim 文件名
例子:vim 11.txt
然后在页面的左下角可以看到文件的信息,行数和字符数,例如上图:3 行、426 个字符。
二、光标的移动
以字符为单位移动,在命令模式中使用 h、j、k、l 这 4 个字符控制方向,分别表示向左、向下、向上、向左
- 按 G:移动到文件最后
- 按 gg: 移动到文件的开头
- 按 0 或者^: 光标移动到所在行的行首
- 按 $: 光标移动到所在行的行尾
- 按 ctrl+f 往下翻一页
- 按 ctrl+b 往上翻一页
三、插入模式
当处于插入模式,左下角的状态如下图所示:
当编辑完成,就可以按 Esc 退出插入模式,进入到命令模式。可以使用 Shift+zz 命令保存退出,其他保存和退出命令见下文。
四、底线模式
【保存和退出】
字母"w":保存不退出;
字母"q":不保存退出;
字符"!":强制性操作;
也可以 wq 这样直接保存退出
【显示行号】
显示行号:set nu
不显示:set nonu
直接到某行:在底线模式下直接输入数字就可以到想到的行,如果输入的数字比文档的行数多就会到最后一行。
【搜索】
想要搜索某个词可以直接在底线模式输入:/要搜索的词,或者在命令模式里直接 /搜索的词也可以,
可以按 n 到搜索的下一个词的地方,按 N 就是往上找。搜索到的词就会以高亮显示,如下图:
如果要忽略大小写,可以先在底线模式输入:set ic , 反之:set noic。
这个高亮如果不取消显示会一直有,可以用这个命令取消,底线模式下输入:nohlsearch。
【字符替换】
在底线模式下:输入 1,$s/string/replace/g 会将全文的 string 字符串替换为 replace 字符串。
1,$ 表示从第一行到最后一行
s 表示替换
g 表示每行全部替换
此时 /w 已经搜索不到了。(此处没有忽略大小写)
替换某一行中的:5s/string/replace/g。
5 表示行数
【操作其它文件】
写入到其它文件:可以直接 w 文件名,这样就会直接创建一个新的文件,并把当前文件的内容拷贝一份到里面。
直接打开另外一个文件:edit 文件名,如果这个时候想看有没有切换成功,可以输入 file 就可以查看当前打开的文件。
五、命令模式下的常用快捷键
【删除】
x:根据光标的位置删除,一次只能删除一个,想要删除多个,可以先按下 想删除的数量 然后再按 x。
例子:先按 300 后按 x,就是删除 300 个字符:300x。
注:这里可以直接在键盘上按对应的数字,是没有显示的,按完数字再按 x 即可删除。
dw : 删除光标所在处到词尾的内容。
dd : 删除光标所在行,3dd 代表的意思就是删除光标所在位置向下的三行,包括光标所在的行 (同 x 批量删除一样)。
【复制】
yy : 复制光标所在的行。
yw : 复制光标所在处到词尾的内容。
p : 黏贴,此命令是在命令模式下,按照上面的命令复制后,然后光标移动到想要复制的位置,然后按 p 黏贴。
【取代替换】
r : 取代光标所在字符,按一下 r 再按 想要取代的字符。
R : 连续取代字符直到按 Esc 为止,按一下 R 然后依次按后面取代的字符,最后按 Esc 结束。
【撤销】
撤销键按:u。
ctrl+r : 重做被撤销的操作,这个是如果你改好后不小心按了下 u,再用这个命令就可以重新回到撤销前的界面。
本文只是简单介绍了下 vim 的常用命令,除了这些还有很多其它的命令,感兴趣的朋友可以更深入地去了解下。