Linux操作系统 ------(3.文本编译器Vim)

目录

1.前言

2.本章学习目标

3.vim的三种工作模式

3.1一般模式‌

3.2编辑模式‌

3.3命令行模式‌

4.运行vim

[5.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)](#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所示的警告信息。

在警告信息的界面下方,系统为用户提供了六个可用选项,各选项的说明如下。

  • Open 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.总结

以上便是本篇博客的全部内容,希望对大家的学习有所帮助,当然还有很多的命令博主没有进行详细的实操和呈现,需要大家下边自己操作,当然值得一提的是博主暂时是依据学校的课本作为参考,后边博主再进行深入学习之后,会对博客进行优化和修改!请敬请期待!我们下一篇博客再见!

相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5203 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩3 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言