Vim 快速入门

如题所示,本文为Vim入门教程,文章涵盖Vim基本的操作:插入、替换、删除、搜索、修改、撤销、重做等等,以及笔者个人的理解和说明。

光标移动

方向键

    k
h       l
    j

光标移动的方向键是hjkl,当然还有默认的方向键。要记住hjkl其实很容易,以j为中心:

CommandDescription
j形似下箭头,使光标向下移动。
h位于左边,使光标向左移动。
l位于右边,使光标向右移动。
k使光标向上移动。

其他

CommandDescription
0使光标移动至行首。
$使光标移动至行尾部,可记作end of line
xw使光标移动x个单词,w可记作word,比如2w,使光标移动两个单词,并位于第二个单词的首个字符处。
xe使光标移动x个单词,e可记作end of word,这个和xw相似,区别是移动后,光标移动后,位于第x个单词的尾部字符处。

删除

CommandDescription
x删除一个字符。
dw删除一个单词,可记作delete word
dxw删除x个单词,可记作delete x words,比如:d2w
d$删除当前光标位置到行尾的的所有字符,$可记作end of line
dd删除整行,此外dd可接受一个数字前缀x,表示删除x行,比如:2dd

撤销与重做

CommandDescription
u撤销上一个命令,可记作undo
U撤销当前行所有的修改。
CTRL-R重做,可记作redo

插入

进入输入模式,最常用的是i命令,可记作insert
但是如果需要追加内容的话,i是无法实现的,此时我们需要使用A命令,可记作append,它使光标位于行尾。

CommandDescription
i光标位置不变,进入输入模式,可记作insert
a光标向后移动一个字符,并进入插入模式,可记作append
A光标处于当前行行尾,并进入插入模式,可记作append
o在当前行下添加新行,并进入插入模式,意为open
O在当前行上添加新行,并进入插入模式。

替换

CommandDescription
rx将当前光标处的字符替换为xr可记作replace
R进入替换模式。
:s/old/new将当前行第一个old字符串替换成news意为substitute
:s/old/new/g将当前行所有old字符串替换成newg可记作globally
:#,#s/old/new/g#为行号,将指定行之间的所有old字符串替换成new,比如:1,10s/old/new/g
:%s/old/new/g将文中所有的old字符串替换成new
:%s/old/new/gc将文中所有的old字符串替换成new,但在替换前会显示确认提示。

修改

如果单词错误过多,用替换来操作是很不方便的,这类情况就需要用到修改命令:

CommandDescription
ce将当前光标位置到单词尾部的字符删除,并进入输入模式,c可记作changee可记作end of word
cw删除一个单词,并进入输入模式。
cxw删除x个单词,并进入输入模式。
c$删除当前光标位置到行尾的的所有字符,并进入输入模式,$可记作end of line

复制和粘贴

首先我们需要使用v命令选择需要复制的文本,选中后使用yyank)进行复制,最后使用ppaste)命令即可粘贴。

y命令也可以类似d命令那样:

  • yw - 复制一个单词。
  • yxw - 复制x个单词。
  • y$ - 复制当前光标处到行尾的内容。
  • yy - 复制整行。

搜索

此处将介绍三个搜索命令:/?%

CommandDescription
//后面加上要搜索的内容(区分大小写),然后回车即可进行搜索,n继续向下搜索,N向前搜索。
??/用法一致,只是搜索方向相反。
%%会匹配()[]{}

搜索默认是区分大小写的,我们可以通过:set ic 忽略大小写(ignore case)。

保存和退出

CommandDescription
:w:w保存当前的修改,可记作write,也可以指定保存的文件名,比如:w filename,则会将内容保存到filename
:q:q退出编辑,可记作quit

wq可以一起使用,如:wq则表示保存并退出。

执行外部命令

Vim中,我们还可以执行外部的命令,比如:!ls则会执行外部命令ls

其他命令

CommandDescription
:no跳到行no
#G跳到行#
G跳到文件底部
gg跳到文件顶部
CTRL-O返回上一个位置
CTRL-I前进下一个位置
:set nu显示行号
:set ic忽略大小写(ignore case
:set noic区分大小写(no ignore case

练习

对于笔者来说,光看不练是无法记住的,所以建议经常使用和练习,才能熟练地使用Vim。另外我推荐一款名为vimtutor的练习脚本(安装Vim自带的)。