vi/vim文本编辑器详解

一、什么是vi/vim文本编辑器?

vi编辑器是Linux系统下最基本的编辑器,工作在字符模式下。从字面意思上实际上不难理解vi/vim这个工具,就是对文本的编辑,包括添加、修改、保存、内容查找等方面的编辑。vi和vim具有完全相同的功能,vim是vi的一个升级版,两者的区别就是vim增加了一项带有文本颜色的编辑,比如说在编辑一个c语言文本时会,不同的语句会标注出不同的颜色,极大地提高了阅读效率。在Linux操作系统中,还有一款带有图形化界面的编辑器gedit,它相当于我们Windows操作系统中的记事本,不过在centos最小化安装系统中是不能用的,除非你安装的是带有图形化界面的Linux操作系统。

二、vi/vim编辑器的三种工作模式

vi/vim共有三种工作模式,分别是:命令模式(command mode)、插入模式(insert mode)、底行模式(last line mode)。

2.1 命令模式

使用vi编辑器打开文件后默认进入的是命令模式。在该模式下,可通过键盘控制光标的移动及文本内容的复制、粘贴、删除等操作。
(1)光标移动
在命令模式中,光标的移动是非常灵活的,通常我们用到的有以下几种。

操作符 功能
“上键”或k 光标上移
“下键”或j 光标下移
“左键”或h 光标左移
“右键”或l 光标右移
0和$ 光标移到到行首和行尾
gg和G 光标移动到页首行首和页尾行首
nG 光标定位到第n行行首
} 光标移至段落结尾
{ 光标移至段落开头
H 光标移至屏幕首部
L 光标移至屏幕尾部

(2)内容删除
在命令模式下,可同键盘上输入相关字符和数字实现对文本内容的删除操作。

操作符 功能
x 删除光标所在单个字符
dd 删除光标所在当前行
ndd 删除光标所在行及其后n行
d+^ 删除光标位置到行首内容
d+$ 删除光标位置到行尾内容
dgg 删除光标所在行到页首
dG 删除光标所在行到页尾

(3)复制粘贴
同样,也可对文本内容进行复制、粘贴等操作。

操作符 功能
yy 复制光标所在行
nyy 复制光标所在行及其后n行
ygg 复制光标所在行到页首
yG 复制光标所在行到页尾
p(小写) 将复制内容粘贴到光标所在行下一行
P(大写) 将复制内容粘贴到光标所在行上一行

在命令模式下,还有常用的几种操作:

  • u:撤销。
  • .:重复上一次执行命令。
  • J:合并两行内容。
  • r:替换光标所在字符(按r后,再按其他字符来代替)

2.2 插入模式

对于插入模式来说,只有进入该模式下才能对文本进行内容的添加和修改。该模式与底行模式不能直接转换。

2.3 底行模式

底行模式下,可以退出当前编辑器,同时可对文本进行保存以及对文本内容的查找、另存为等操作。常用的有以下几种。
(1)显示行号::set nu
(2)取消显示行号::set nonu
(3)显示控制字符::set list
(4)取消显示控制字符::set nolist
(5)光标定位到第n行::n
(6)关键字查找::/输入查找内容

若有内容则会定位到最开始的一个,n查找下一个,N查找上一个。

扫描二维码关注公众号,回复: 11597861 查看本文章

(7)内容替换

操作符 功能
: s/被替换内容/替换内容/ 替换当前光标所在行的第一个目标
: s/被替换内容/替换内容/g 替换当前光标所在行全部目标
:%s/被替换内容/替换内容/ 替换所有行的第一个目标
:%s/被替换内容/替换内容/g 替换所有行的所有目标

(8)保存退出
在底行模式下,当一切都修改、添加操作完成后,接下来就是保存并退出了。首先按一下键盘上的Esc键进入底行模式,让后再执行以下命令:

操作符 功能
:q 退出vi/vim编辑器(前提是没对文本内容有过增删)
:w 保存编辑后的内容
:wq 保存并退出vi/vim编辑器
:q! 强制退出vi/vim编辑器(不保存对文件的修改)
:w! 对没有修改权限的用户强行保存对文件的修改,并且修改后的文件的所有者和所属组都有相应变化
:wq! 强行保存文件并退出vi/vim编辑器

2.4 可视模式(扩展)

在命令模式在可以进入可视模式,可视模式分为:可视块模式、可视行模式两种。使用这两种模式时,可以对编辑的文本内容进行复制、粘贴、删除等,这种方法对于处理所选定的块或行是非常有用的,也是非常高效的。
(1)可视块模式:如下图选中文本内容的某一块区域。
在这里插入图片描述
(2)可视行模式:如下图所选中文本内容的某几行。
在这里插入图片描述

2.5 模式切换

命令模式、插入模式、底行模式三者之间的转换关系如下图所示:
在这里插入图片描述
(1)命令模式进入插入模式

操作符 功能
i 从当前光标处进入插入模式
a 从当前光标后进入插入模式
A 从当前光标所在行行尾进入插入模式
o(小写o) 从当前光标所在行的下一行进入插入模式
O(大写o) 从当前光标所在行的上一行进入插入模式
s(小写) 删除光标所在字母进入插入模式
S(大写) 删除光标所在行进入插入模式

(2)命令模式与底行模式之间切换
命令模式与底行模式之间切换按键盘上的Esc键即可切换到命令模式。

三、总结

  • 对于vi/vim文本编辑器的一些基本的操作,我认为需要牢牢掌握,这是一个运维人员或者是了解Linux系统非专业人员必备的基本技能。如果你刚接触这个vi/vim编辑器,也许进去就不知道怎么退出来了(尴尬)。不过这很正常,初学嘛。
  • 在操作上也是很方便的,其实只要记住三种工作模式的切换方法,以及如何退出保存,基本上就OK了。其他的操作符无非就是提供你快速查阅文本内容的一个辅助。比如我要查询该文本中的某一个关键字,或者是替换某一个关键字、将文本另存为等等。

猜你喜欢

转载自blog.csdn.net/IT_ZRS/article/details/108064953
今日推荐