开始使用vim

vim是一个文本编辑器。虽然目前有很多编辑器可选,但是vim很可能是在没有图形界面情况下的唯一选择,因此还是有必要了解此编辑器。

如果之前没有使用过终端中的文本编辑器,可能会对vim有很多的不适应。需要说明的是,vim是为终端设计的编辑器,这意味着此编辑器在没有鼠标的情况下进行操作。此编辑器的操作逻辑(很大程度来来源于vi)具有很长的历史,这一方面导致它的逻辑不太能被新用户接受,另一个方面也说明这种操作逻辑的健壮性。

三种模式

vim具有三种模式:一般模式、编辑模式和命令模式。

打开vim后,就进入了一般模式,在这种模式中,常用的操作就是光标的移动和行的操作,比如行的复制、粘贴和删除等。

可以从一般模式进入编辑模式和命令模式,编辑模式与图形化的编辑器(比如记事本、写字板等)非常相似,可以进行字符级别的操作。

命令模式的常用操作是搜索、替换、读取、保存和对编辑器的设置(比如设置行号和缩进)等操作。

打开、编辑、保存、退出

使用vim打开一个文件很简单:

$ vim hello.txt

上面的命令会使用vim打开hello.txt文件,如果hello.txt存在,那么将打开该文件;如果不存在,那么将创建并打开该文件。

进入vim程序后,就进入了一般模式,这个时候可以使用按键hjkl移动光标,分别表示光标向左、上、下、右4个方向移动。

按键 功能
h 向左移动光标
j 向上移动光标
k 向下移动光标
l 向右移动光标

下面是一个动图示例:

vim打开文件并移动光标

为了便于读者理解,动图中终端右侧的提示表示实际的按键。

i键即可进入编辑模式,也可以使用其他按键:

按键 功能 按键 功能
i 从光标处插入 I 所在行第一个非空白字符处插入
o 所在行下面插入新行并在新行插入 O 所在行上面插入新行并在新行插入
a 光标处下一个字符插入 A 所在行最后字符后插入

i键后,就会进入编辑模式并从光标处开始插入,这时移动光标需要使用键盘上的箭头按键。使用i进入编辑模式后,vim窗口左下方会显示-- INSERT --字样,表示用户正在插入(编辑)模式。

对文件修改完成后,使用 ESC 键返回一般模式。

下面是动图示例:

vim的插入模式

返回一般模式后,使用命令模式对文件进行保存。

在一般模式中输入:即可进入命令模式,此时vim窗口左下方会显示:,之后输入w表示写入文件,即:w表示写入文件;:q表示离开vim;:wq表示写入文件后离开vim。

下面是动图示例:

vim写入并离开

至此,我们从一般模式按i键到编辑模式,编辑后按ESC键到一般模式,在命令模式进行保存和离开,完成了对一个文本文件的编辑。

下面是几个命令模式中常用的命令:

命令 功能
:w 写入文件
:q 离开
:q! 强制离开
:wq 写入文件并离开
:w filename 将文件另存为filename文件
:n1 n2 w filename 将n1~n2行另存为filename文件
:! command 暂时到shell中执行command命令
:set nu 显示行号
:set nonu 不显示行号

下面是设置显示行号和不显示行号的动图示例:

vim设置行号

一般模式

如上所述,在一般模式中,可以使用hjkl移动光标,分别表示光标向左、上、下、右4个方向移动。

下面是一般模式中的常用的操作:

按键 功能
Ctrl + f 下一页
Ctrl + b 上一页
0 移动光标至本行开头
$ 移动光标至本行末尾
gg 移动光标到第一行
nG n为数字,移动光标到第n行
G 移动光标到最后一行
n n为数字,光标向下移动n行

下面是使用ggG在行之间移动光标的动图示例:

vim一般模式中在行中跳转

一般模式中可以对行进行复制、粘贴和删除的操作,下面是常用的操作:

按键 功能
yy 复制光标所在行
nyy n为数字,复制光标所在行(包含)向下n行
p 在光标所在行下面粘贴
P 在光标所在行上面粘贴
dd 删除光标所在行
ndd n为数字,删除光标所在行(包含)向下n行

下面是使用yy复制,p粘贴,在使用ndd删除的动图示例:

vim中的复制、粘贴和删除操作

还可以使用.(英文句号)键进行重做操作,u键进行撤销操作。

搜索与替换

在命令模式中进行搜索与替换:

命令 功能
/word 向下搜索word
?word 向上搜索word
n 搜索下一个
N 反向搜索下一个
:n1,n2s/word1/word2/g n1,n2为数字,在n1~n2行中用word2替换word1,替换时不询问
:1,$s/word1/word2/g 第一行至最后一行(全文)用word2替换word1,替换时不询问
:n1,n2s/word1/word2/gc n1,n2为数字,在n1~n2行中用word2替换word1,替换时询问

下面是一个在vim中搜索的动图示例:

vim搜索

区块操作

vim还支持区块操作:

按键 功能
v 字符选择
V 行选择
Ctrl + v 区块选择
y 复制区块
d 删除区块

下面是区块操作的动图示例:

vim区块操作

多窗口

vim支持多窗口操作,下面是常用的操作:

命令或按键 功能
:sp filename 横向新窗口打开filename文件
:vsp filename 纵向新窗口打开filename文件
Ctrl + w 之后 [hjkl] 将光标移动到左、上、下、右侧窗口

下面是两个纵向窗口的动图示例:

vim多窗口操作

你可能感兴趣的:(开始使用vim)