Vim 快速入门
文章目录
如题所示,本文为Vim入门教程,文章涵盖Vim基本的操作:插入、替换、删除、搜索、修改、撤销、重做等等,以及笔者个人的理解和说明。
光标移动
方向键
k
h l
j
光标移动的方向键是hjkl,当然还有默认的方向键。要记住hjkl其实很容易,以j为中心:
| Command | Description |
|---|---|
j |
形似下箭头,使光标向下移动。 |
h |
位于左边,使光标向左移动。 |
l |
位于右边,使光标向右移动。 |
k |
使光标向上移动。 |
其他
| Command | Description |
|---|---|
0 |
使光标移动至行首。 |
$ |
使光标移动至行尾部,可记作end of line。 |
xw |
使光标移动x个单词,w可记作word,比如2w,使光标移动两个单词,并位于第二个单词的首个字符处。 |
xe |
使光标移动x个单词,e可记作end of word,这个和xw相似,区别是移动后,光标移动后,位于第x个单词的尾部字符处。 |
删除
| Command | Description |
|---|---|
x |
删除一个字符。 |
dw |
删除一个单词,可记作delete word。 |
dxw |
删除x个单词,可记作delete x words,比如:d2w。 |
d$ |
删除当前光标位置到行尾的的所有字符,$可记作end of line。 |
dd |
删除整行,此外dd可接受一个数字前缀x,表示删除x行,比如:2dd。 |
撤销与重做
| Command | Description |
|---|---|
u |
撤销上一个命令,可记作undo。 |
U |
撤销当前行所有的修改。 |
CTRL-R |
重做,可记作redo。 |
插入
进入输入模式,最常用的是i命令,可记作insert。
但是如果需要追加内容的话,i是无法实现的,此时我们需要使用A命令,可记作append,它使光标位于行尾。
| Command | Description |
|---|---|
i |
光标位置不变,进入输入模式,可记作insert。 |
a |
光标向后移动一个字符,并进入插入模式,可记作append。 |
A |
光标处于当前行行尾,并进入插入模式,可记作append。 |
o |
在当前行下添加新行,并进入插入模式,意为open。 |
O |
在当前行上添加新行,并进入插入模式。 |
替换
| Command | Description |
|---|---|
rx |
将当前光标处的字符替换为x,r可记作replace。 |
R |
进入替换模式。 |
:s/old/new |
将当前行第一个old字符串替换成new,s意为substitute。 |
:s/old/new/g |
将当前行所有old字符串替换成new,g可记作globally。 |
:#,#s/old/new/g |
#为行号,将指定行之间的所有old字符串替换成new,比如:1,10s/old/new/g。 |
:%s/old/new/g |
将文中所有的old字符串替换成new。 |
:%s/old/new/gc |
将文中所有的old字符串替换成new,但在替换前会显示确认提示。 |
修改
如果单词错误过多,用替换来操作是很不方便的,这类情况就需要用到修改命令:
| Command | Description |
|---|---|
ce |
将当前光标位置到单词尾部的字符删除,并进入输入模式,c可记作change,e可记作end of word。 |
cw |
删除一个单词,并进入输入模式。 |
cxw |
删除x个单词,并进入输入模式。 |
c$ |
删除当前光标位置到行尾的的所有字符,并进入输入模式,$可记作end of line。 |
复制和粘贴
首先我们需要使用v命令选择需要复制的文本,选中后使用y(yank)进行复制,最后使用p(paste)命令即可粘贴。
y命令也可以类似d命令那样:
yw- 复制一个单词。yxw- 复制x个单词。y$- 复制当前光标处到行尾的内容。yy- 复制整行。
搜索
此处将介绍三个搜索命令:/、?和%:
| Command | Description |
|---|---|
/ |
/后面加上要搜索的内容(区分大小写),然后回车即可进行搜索,n继续向下搜索,N向前搜索。 |
? |
?和/用法一致,只是搜索方向相反。 |
% |
%会匹配(和),[和],{和}。 |
搜索默认是区分大小写的,我们可以通过
:set ic忽略大小写(ignore case)。
保存和退出
| Command | Description |
|---|---|
:w |
:w保存当前的修改,可记作write,也可以指定保存的文件名,比如:w filename,则会将内容保存到filename。 |
:q |
:q退出编辑,可记作quit。 |
w、q可以一起使用,如:wq则表示保存并退出。
执行外部命令
在Vim中,我们还可以执行外部的命令,比如:!ls则会执行外部命令ls。
其他命令
| Command | Description |
|---|---|
:no |
跳到行no |
#G |
跳到行# |
G |
跳到文件底部 |
gg |
跳到文件顶部 |
CTRL-O |
返回上一个位置 |
CTRL-I |
前进下一个位置 |
:set nu |
显示行号 |
:set ic |
忽略大小写(ignore case) |
:set noic |
区分大小写(no ignore case) |
练习
对于笔者来说,光看不练是无法记住的,所以建议经常使用和练习,才能熟练地使用Vim。另外我推荐一款名为vimtutor的练习脚本(安装Vim自带的)。