目录
1.前言
2.本章学习目标
3.vim的三种工作模式
3.1一般模式
3.2编辑模式
3.3命令行模式
4.运行vim
5.vim 不同工作模式下的常见命令
6.一般模式下的功能键
6.1移动光标类
6.2删除、复制和粘贴类
6.3查找替换类
7.从一般模式进入编辑模式
8.命令行模式下的功能键
9.文件救援和高级功能
10.文件救援
11.多窗口编辑
11.1单个文件分屏编辑
11.2多个文件分屏编辑
11.3关闭分屏
12.多文件编辑
13.块选择(Visual Block)
14.总结
1.前言
上篇博客我们介绍了Shell的常用命令,这次博客我们接着继续学习下一个章节:3.文本编译器Vim
2.本章学习目标
掌握vim的三种工作模式。
掌握一般模式下的快捷键。
掌握命令行模式下的快捷键。
熟悉Linux的文件救援和高级功能
Vim是一种命令行界面下的文本编辑器。在早期的Unix操作系统中都是使用vi作为系统默认的编辑器的。vim就是vi的升级版,vim和vi的区别在于,当我们在编辑一个文本的时候,文本内容在vi中显示为黑白色,而在vim中会显示彩色。此外,vim还能够进行诸如shell脚本,C语言源程序,JAVA等程序编辑功能,使用vim能帮助程序员更容易找出源程序中的语法错误,因此可以将vim视为一种程序编辑器。默认情况下,openEuler 22.03 LTS SP3(是一种国产的操作系统,它的下载和虚拟机的配置详见这个博主的文章Linux系统应用之知识补充——OpenEuler(欧拉)的安装和基础配置-CSDN博客)支持vi和vim命令。
那么vim到底是怎么工作的呢?首先来了解一下vim的工作模式。vim的工作模式有三种,分别是一般模式(也称指令模式)、编辑模式和命令行模式。
3.vim的三种工作模式
3.1一般模式
一般模式有时也称为指令模式。当使用一条命令 vim filename 打开一个文件时,进入该文件就是一般模式了。
3.2编辑模式
在一般模式下,不可以修改文档字符,只能进入编辑模式后,才可以进行修改操作。那么,如何从一般模式切换到编辑模式呢?
可以按下“i、I、a、A、o、O”这6个键中的任意一个。此时,屏幕的最后一行会出现“-- 插入 --”字样,即进入了编辑模式。如果只需要进行替换操作,则可以按下“r”或者"R"键,此时屏幕的最后一行会出现“-- 替换 --”字样。
修改完毕,从编辑模式返回到一般模式,按一下键盘左上方的Esc键即可。
3.3命令行模式
在一般模式下,当输入 “:”(冒号),就进入了命令行模式。
vim 三种工作模式之间的转换关系如图3-1所示。
图3-1vim三种工作模式的转换关系图
4.运行vim
在终端中输入vim filename命令,然后按回车键,就进入vim的一般模式了。如果当前目录中存在这个文件,则打开该文件;如果不存在这个文件,则新建文件,因此,该命令无论什么时候都不会报错。
上面讲解了vim的3种工作模式以及它们之间的转换关系。下面举个简单的例子让大家加深印象,要求是使用vim命令创建一个文本文件test.txt,并在其中写入一段文字,然后进行保存,最后退出vim。
5.vim 不同工作模式下的常见命令
1到4只是讲解了vim的基本操作,但其实 vim 是全键盘式操作的编辑器,在各个模式下都有很多的功能键,只有掌握好了这些功能键,你才能成为真正的vim高手。下面将对3种模式下的功能键一一进行详细的讲解。
6.一般模式下的功能键
在一般模式下可以使用的功能键最多,可以分为三类:移动光标类,删除、复制和粘贴类,查找替换类。
6.1移动光标类
一般模式下的移动光标类快捷键如图3-2所示。
6.2删除、复制和粘贴类
一般模式下的删除、复制和粘贴类快捷键如图3-3所示。
6.3查找替换类
一般模式下的查找和替换类快捷键如图3-4所示。
7.从一般模式进入编辑模式
从一般模式进入编辑模式,可以按下i,I,a,A,o,O, r,R这8个键中的任意一个,这8个键的意义是不一样的。其中,按下i,I,a,A,o,O时,窗口最下方将会出现“-- 插入 --”字样,按下R时,窗口最下方将会出现“-- 替换 --”字样。
从一般模式进入编辑模式的8个键的作用如图3-5所示。
8.命令行模式下的功能键
在一般模式下,输入“:”将进入命令行模式。命令行模式下支持的功能有:保存文件,退出vim,读入外部文件,设置行号等。
命令行模式下的功能键如图3-6所示。
9.文件救援和高级功能
下边介绍vim中的文件救援和一些高级功能,诸如多窗口编辑、多文件编辑和块选择等。
10.文件救援
在使用vim编辑文件时,vim会在被编辑的文件所处的目录下,建立一个名称为.filename.swp的隐藏文件。如果系统突然断电,导致编辑的文件没有及时保存,这个时候.filename.swp就能够发挥救援的功能了。当再次使用命令vim filename打开文件时,将会弹出发现交换文件.filename.swp的警告信息。
本例在使用vim test.txt命令编辑文件后没有保存就退出了终端,再次使用vim test.txt命令时就弹出了如图3-7所示的警告信息。
在警告信息的界面下方,系统为用户提供了六个可用选项,各选项的说明如下。
[O]pen Read-Only 以只读方式打开
(E)dit anyway 直接编辑
(R)ecover 恢复
(D)elete it 删除交换文件
(Q)uit 退出
(A)bort 中止
如果需要救援未保存的文件,先按下R,再按下回车键,test.txt文件就恢复出来了。
但需要注意的是,文件.filename.swp需要用户手动删除。否则下次打开文件时,还会弹出同样的警告画面。
11.多窗口编辑
11.1单个文件分屏编辑
在使用vim test.txt编辑文件时,在一般模式下,输入“:sp”,然后按下回车键,会将该文件显示在两个窗口中,实现水平分屏的功能,如图3-8所示。
在使用vim test.txt编辑文件时,在一般模式下,输入“:sp /etc/profile”,然后按下回车键,会将文件profile显示在第一个窗口中,test.txt显示在第二个窗口中,实现不同文件水平分屏的功能,如图3-9所示。
11.2多个文件分屏编辑
多文件分屏编辑的命令格式及说明如下。
格式:
vim -On [FILE_1] [FILE_2] ...
vim -on [FILE_1] [FILE_2] ...
说明:
-O:垂直分割(vertical),不同窗口切换:【Ctrl】+w+←或者【Ctrl】+w+→
-o:水平分割(默认horizontal):【Ctrl】+w+ ↓或者【Ctrl】+w+ ↑
n:表示分几个屏,可缺省,默认按后面要分割的文件数来决定分几个屏
[FILE_1] [FILE_2] ...:需要分屏打开的文件
如果只打开2个文件,则重复按两次 【Ctrl】+w组合键即可切换窗口。
图3-10所示为使用vim –O test.txt /etc/passwd /etc/profile命令打开3个文件垂直分屏的界面。
11.3关闭分屏
要关闭其他的分屏时可以使用下面的命令。
(1)取消其他分屏,只保留当前分屏。
:only 或者 【Ctrl】+ w + o
(2)退出当前所在分屏。
:q
12.多文件编辑
在进行多文件编辑时,可以使用的命令如下。
格式: vim file1 file2 file3 ....
:n 编辑下一个文件(右侧)
:N 编辑上一个文件(左侧)
:files 列出目前vim 开启的所有文件
使用命令vim /etc/profile /etc/passwd /etc/hosts,在vim后面同时接3个文件来开启多文件同时编辑的功能,如图3-11所示。
13.块选择(Visual Block)
在使用vim编辑文件的时候,还可以选择某些字符、某些行或者以长方形的方式选择文件内容,然后将选中的文本删除或者复制。选择文本时可以使用的按键及说明如下。
v:字符选择,会将光标经过的地方反白选择。
V:行选择,会将光标经过的行反白选择。
[Ctrl]+v:区块选择,可以用长方形的方式选择资料。
y:将反白的地方复制起来。
d:将反白的地方删除掉。
p:将复制的内容粘贴。
打开/etc/hosts文件,按下【Ctrl】+v键,选择的长方形区域如图3-12所示。
14.总结
以上便是本篇博客的全部内容,希望对大家的学习有所帮助,当然还有很多的命令博主没有进行详细的实操和呈现,需要大家下边自己操作,当然值得一提的是博主暂时是依据学校的课本作为参考,后边博主再进行深入学习之后,会对博客进行优化和修改!请敬请期待!我们下一篇博客再见!