天天看点

Vim文本编辑器的使用

linux、CentOS8、vim编辑器

Vim文本编辑器的使用

相对于windows里面记事本,vim简直是太强大了,其玩法可以说千变万化,初学者如果想在有限时间内把它所有的功能都弄清楚,几乎是不可能完成的任务!所以,我们通过先快速上手,然后再介绍进阶功能的两步走方法来学习vim!

一、快速上手vim

先创建一个文档file1,如图2所示。

Vim文本编辑器的使用

 图2 创建1个名为file1的文档

创建并打开文档后,默认进入的是Vim编辑器的普通模式。在这个模式下我们不能输入文字。

Vim文本编辑器的使用

 图3 文档file1被创建并处于普通模式

按”i”键进入到INSERT模式(插入模式)即可录入文字,如图4所示。

Vim文本编辑器的使用

 图4 进入INSERT模式

进入插入模式后,输入文本内容,如图5所示。

Vim文本编辑器的使用

 图5 输入文字

文档编写完毕,敲击键盘的Esc键从输入模式返回到普通模式,如图6所示。

Vim文本编辑器的使用

 图6 返回到普通模式

在普通模式下,输入冒号“:”,进入命令模式,此时光标移动到冒号后,等待我们输入命令,如图7所示。

Vim文本编辑器的使用

 图7 进入到命令模式

在命令模式下,我们输入“wq”,然后回车,vim编辑器将会保存我们输入的内存并退回到命令行界面,如图8、9所示。

Vim文本编辑器的使用

 图8 输入保存并退出命令

Vim文本编辑器的使用

 图9 回到命令行界面

这样,我们经历了一个将文档创建、录入文字并保存的完整过程。在此过程中,我们要注意vim编辑器随着我们的操作在三种不同的模式间进行切换,现在对这三种模式进行归纳,如表1所示:

模式名称 功能 如何进入
普通模式 浏览、编辑文档(如复制、删除等) 按ESC键
插入(INSERT)模式 录入文字 按i、o、a、I、O、A等键
命令模式 执行保存、退出、查找等命令,也可执行外部命令。 输入“:”、“/”、“?”等符号

表1 vim三大模式

除了上述表格中的三大模式外,vim还有别的模式,有兴趣的同学可以到网上探索以掌握更多的模式。学习重于观察,建议大家重点观察图2-8中图片底部文字的变化,在vim编辑器的最后一行,我们可以看作是MS Word中的状态栏,当我们处于不同模式时,此“状态栏”也会有相应的变化,提示我们处于什么状态,可以做什么操作。

二、vim进阶

1. vim也有多视窗

vim可以进行多窗口编辑,我们先打开上一节的文档file1,如果看到图10中一样出现若干提示,如果需要恢复之前的版本,可以按r键。此处我们按e键即可对file1的最近版本进行编辑。

Vim文本编辑器的使用

 图10 再次打开file1的提示界面

进入file1后,在普通模式里输入:进入到命令模式,然后输入sp file1.1并回车,vim将会创建一个新的文件file1.1并为之打开一个新的横向窗格,如图11所示。

Vim文本编辑器的使用

 图11 上下两个窗格呈横向显示的界面

再次输入:进入到命令模式,然后输入vsp file1.2并回车,vim将会创建一个新的文件file1.2并为之打开一个新的窗格,因为我们这次使用的命令是vsp,所以新出现的窗格与原来file1.1的窗格呈纵向并列显示。至此,我们总共就可以看到三个窗格,可以分别对file1、file1.1、file1.2进行处理,如图12所示。

Vim文本编辑器的使用

 图12 三个窗格同时显示的界面

打开多个窗格之后,剩下的问题就是如何灵活自如地在这些窗格之间移动变换,此时我们需要使用一个快捷键组合Ctrl+w,当我们在普通模式下按Ctrl+w后,会看到最下面的“状态栏”出现了一个“^W”的状态标记,这表示我们进入了窗格操作模式,如图13所示。

Vim文本编辑器的使用

 图13 窗格操作模式的界面

进入窗格操作模式后,我们只需按w键,就会发现光标移到了另外的窗格,然后就可以对该文件进行操作了。现在我们反复使用Ctrl+w然后再按w的方法把光标切换回file1。然后我们再来一次操作,先使用快捷键Ctrl+w进入窗格操作模式,然后按L——注意是大写哦!之后,我们将看到如图14的效果。

Vim文本编辑器的使用

 图14 窗格呈并列显示的界面

至此,我们发现了窗格操作的一些小窍门,那就是在普通模式下按组合键Ctrl+w进行入到如图13所示的模式,然后再发出一个操作指令(其实就是输入一个英文字母,注意大小写是不同的),就可以对窗格进行操作了。至于什么操作指令可以达到什么样的效果,大家可以参考表2:

操作指令 效果
w 把光标移到另一个窗格
j 把光标移到上面的窗格
k 把光标移到下面的窗格
h 把光标移到左边的窗格
l 把光标移到右边的窗格
J 将当前窗格移至下方
K 将当前窗格移至上方
H 将当前窗格移至左方
L 将当前窗格移至右方
s 将当前窗格分割成两个水平的窗格
v 将当前窗格分割成两个垂直的窗格
q 关闭分割出来的视窗

表2 vim多窗口操作指令

2. 常规编辑操作——插入

vim编辑器提供了多种插入操作,这些操作都是从普通模式输入特定的指令字符进入插入模式,之后就可以录入文字了。在第1节快速上手部分,我们仅仅用了一个常规的插入指令字符“i”,除“i”外,还有别的插入指令字符,如表3所示:

操作指令 效果
i 在当前光标位置前插入
a 在当前光标位置后插入
I 光标移到行首并插入
A 光标移到行末并插入
O 在当前行之前插入一个空行
o 在当前行之后插入一个空行
c^ 把当前光标至行首的字符删除并插入
c$ 把当前光标至行尾的字符删除并插入
cb 把当前光标至所在单词词首的字符删除并插入
cw 把当前光标至所在单词词尾的字符删除并插入
cc 删除当前行并插入
ck 删除当前行与上一行并插入
cj 删除当前行与下一行并插入
cH 删除当前行到首行并插入
cG 删除当前行到末行并插入

表3 vim插入的操作指令——必须在普通模式下执行

3. 常规编辑操作——删除

在表3的后半部分2个字符的指令其实已经包含了删除的操作,只是那些操作的目的不是删除,而是为了进入插入模式而顺便进行删除。本小节,我们学习专门的删除操作,专门的删除操作都离不开指令字符“d”、”D“,最”顺手“的删除操作当属连按两次”d“键——删除当前行。如果要删除连续几行,则须佩以数字,如3d的作用是删除当前及其后的三行。需要说明的是,我们输入3d后,vim编辑器不会像之前一样立即执行指令,我们还须按回车键确认。表4列出了删除的常规操作。

操作指令 效果
x 删除光标所在字符——相当于删除Delete键
X 删除光标前的字符——相当于退格Backspace键
dd 删除一行
diw 删除光标处的单词
dis 删除光标处的句子
dgg 删除到文件首
dG 删除到文件末
d^ 把当前光标至行首的字符删除
d$ 把当前光标至行尾的字符删除
db 把当前光标至所在单词词首的字符删除
dw 把当前光标至所在单词词尾的字符删除

表4 vim的常规删除指令——必须在普通模式下执行

表4列出的只是一些删除的常规操作,为了展示vim的强大,我们列出一些综合性的”骚“操作,请看表5

操作指令 效果
:g/^$/d 删除空行
:g/^\s*#/d 删除以#号开头的行
:g/hell/d 删除包含hell的行
:g/^hell/d 删除以hell开头的行
:g/hell$/d 删除以hell结尾的行

表5 综合性的删除操作

4. 常规编辑操作——复制、粘贴

本小节,我们学习复制操作,复制操作离不开指令字符“y”,最顺手的复制操作当属连按两次y键——复制当前行。如果要连续复制几行,则须佩以数字,如3yy的作用是复制三行。复制完成后,只需要按“p”键,即可粘贴,需要注意的是,这些操作都要在普通模式下执行。表6列出了复制粘贴的常规操作。

操作指令 效果
yy 复制当前行
nyy 复制n行
y^ 复制至行首
y$ 复制至行末
yb 复制当前光标至所在单词词首的字符
yw 复制当前光标至所在单词词尾的字符
diw 复制光标处的单词
dis 复制光标处的句子
yH 复制当前行到首行
yG 复制当前行到末行
p 粘贴在光标后
P 粘贴在光标前

表6 复制粘贴的常规操作

如果需要选中一些内容后再进行复制,可普通模式下按v键进入选择模式,然后用方向键或hjkl选择文本,再按y行进行复制。如果需要的是剪切,则需要按d键——是的,你猜得没错,前面的所有删除操作等同于剪切^_^

5. 常规编辑操作——撤销、恢复

类似windows系统中的Ctrl+z和Ctrl+y,vim也有对应的撤销和恢复操作,就是在普通模式下,按u键即为撤销,而恢复则是Ctrl+r。