如题所示,本文为Vim
入门教程,文章涵盖Vim
基本的操作:插入、替换、删除、搜索、修改、撤销、重做等等,以及笔者个人的理解和说明。
光标移动
方向键
1 k
2h l
3 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
自带的)。