RHEL8---vim编辑器的使用

本章主要介绍如何使用vim编辑文件

  • vim 的基本使用
  • vim 几种模式的切换
  • vim 在末行模式中的用法
  • vim 在命令模式中的用法

在Linux中,很多时候需要使用编辑器来修改文件,使用最多的编辑器就是vim,用法如下。

  • vim /path/file

  如果这个文件不存在,则会在内存中创建出来,与在 Windows中单击【开始】→【所有 程序】→【记事本】的功能相同,只是在内存中打开,并没有存储在硬盘上。如果文件存 在,则把此文件打开。

环境准备的命令如下。   

[root@rhel03-23 ~]# head /etc/passwd > aa.txt

  先创建一个测试文件aa.txt,这里的意思是把/etc/passswd前10行的内容写入 aa.txt中。 然后执行vim aa.txt命令打开此文件,界面如下所示。 

[root@rhel03-23 ~]# vim aa.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin

  此时会发现按【Enter】键不会产生空白行,按【Backspace】键也不会删除任何字符,即现 在无法编辑。这里就涉及了vim的三种模式。 

1、插入模式

  用vim打开文件时,是在命令模式下,如果想修改文件内容,需要进入插入模式(也称为 编辑模式)。从命令模式切换到插人模式,有6个常见的字符。 

  • i:从当前光标所在字符处插入。
  • a:从当前光标的后一个字符处插入。
  • o:在当前行的下一行产生一个空白行并进入插入模式。
  • I:光标跳到本行的开头,并进入插入模式。
  • A:光标跳到本行的结束,并进入插入模式。
  • O:在当前行的上一行产生一个空白行并进入插入模式。

  用上、下、左、右键调整光标到合适的位置之后,把光标放在r的位置。按 【 i 】键进入插入模式,如下所示。

20600388fee649dc95e10c22694c62c1.png

 a257360d93b44194bc409f212a565499.png

  可以看到,光标仍然是在r上面的(这就叫作从当前光标所在字符插人),左下角显示 为“插入”或“insert”,此时就进入插入模式了。 

然后可以通过上、下、左、右键调整位置对文件进行修改,例如,修改成下图所示的内容。

179350936fe1449791f18d2cd5683558.png

修改完成之后需要对文件进行保存,在插入模式下是无法保存的,必须进入末行模式才可 以。需要按【Esc】键退回到命令模式,然后从命令模式进入末行模式,如下图所示。

7228a3cb11934fb7acb05c86f29a9f3c.png 

从插入模式退回命令模式

2、末行模式

从命令模式进入末行模式有两种方式。

2.1、/关键字

这种一般用于在文件中查询所有的关键字,如果想忽略大小写可以用“/关键字\c”。

例如,在passwd中查询所有的root,先按【/】键,然后在后面输入“root”,如下图所示。

108cc8b45f414ec48d031a40074b13c2.png 

  此刻会高亮显示所有的关键字root,不过可以看到ROOT和Root并没有高亮显示出来,因 为在 Linux中是严格区分大小写的,如果想忽略大小写,可以写成/root\c,如下图所示。

3d34e11cefce427aa929a315fded24da.png 

  但是此时被高亮显示:如果想去掉,可以随意输入一个字符串, 然后按【Enter】键,如下图所示。 

14b81e62860d4d26a97e3ff647a14a8c.png 

  这些高亮的印迹就没有了,下面“E486:找不到模式”的提示可以忽略,如果看着不舒 服,可以按【/】键之后按【 Backspace】键,就可以取消了。 

2.2、在命令模式下按冒号

在命令模式下按冒号。这里可以执行各种操作,总结如下

  • 保存但不退出::w
  • 保存退出::wq
  • 保存退出::x(小写)。
  • 另存为::w /path/new-name。
  • 加载其他文件::r /path/text-file。
  • 显示行号::set nu
  • 去除行号::set nonu。
  • 切换行::数字,这样光标可以快速切换到指定的行。
  • 替换操作:语法如下。

:s/old/new/

把root替换成RHCE,如下图所示。

77f1a119a2744f2c9de87c5ae89f1f9d.png 

按【Enter】键查看内容,如下图所示。

f378d2b3bf494a02980935bd3eaf7169.png

  可以发现,只是第一行(光标在第一行)发生了替换,且只替换了那行的第一个关键字。如 果想把本行所有的关键字全部替换,需要写成:s/root/RHCE/g,这里g的意思是本行全部关键字。 

  此时按【u】键执行撤销操作,然后把本行所有的root(不管大小写)全部替换成RHCE, 写法如下图所示。

4660a908028c47dfa019e075d66ed234.png

按【Enter】键后看第一行的内容,如下图所示。

1481f1e615d54e348c39c98a6fa5391b.png

按【u】键执行撤销操作 

  此时替换操作只是替换当前光标所在行,如果想替换指定的一些行,可以写成 :m,ns/old/new/g,意思是从第 m 行到第 n 行中所有的 old 全部替换成 new。假设现在想 把从第1行到第7行中所有的root(不管大小写)全部替换成RHCE,写法如下图所示。

50410935ddc94b30b7b67d31166d591c.png

按【Enter】键后的效果如下图所示。

e2cc38e354544da7bc0e6ba12cb08279.png 

按【u】键撤销。

这里还可以用$表示最后一行,对应的$-1表示倒数第二行,以此类推。

例如,想把从第二行到倒数第二行中所有的root(不管大小写)全部替换成RHCE,写法如下图所示。 

按【Enter 】键查看效果,然后按【u】键撤销

31f7dbe6759b4ee29a675c0888c5faf9.png

   如果想全文替换,可以写成:1,$s/old/new/g,这里1,S是从第一行到最后一行,表示全 文,还可以直接用%表示全文,即:%s/old/new/g。 

替换完成之后,请自行按【u】键撤销。

  刚才替换时用的是/作为分隔符,但如果关键字中就含有/,则很容易出错。例如,把第一 行的/root替换成RHCE,如果写成:s/root/RHCE/g,则会报错,因为我们希望按照下面的规则替换。

  • :s//root/RHCE/g

但是它会把前面三个/作为分隔符,后面的字符是多余的。

  • :s//root/RHCE/g 

所以会报错,为了防止/root 中的/被当成分隔符,我们可以用转义符,如下所示。

  • :s/\root/RHCE/g 

  这样就不会把/root的/当成分隔符了,但是这样写看起来过于复杂。其实我们不一定非得 用/作为分隔符,使用其他分隔符也是可以的,如#,这样替换操作就可以写成如下命令。

  • :s#/root/#RHCE#g

3、命令模式 

要想从末行模式切换到命令模式,只要按两次【Esc】键即可,如下图所示。

33f1f630cd47498081e1cbe2e70dbc02.png 

  一开始在命令模式下无法做具体的操作(无法删除,按【Enter】键也没用),其实在命令 模式下也可以微许多操作。 

(1)复制行。

nyy (n为数字)表示从当前行开始,一共复制n行。

把光标调整到第5行,此时按【3yy】键,就会把5、6、7三行复制下来, 如下图所示。

25a9f1e27e4341be9f1e2d4cb1c8da6a.png

(2)粘贴行。

  调整光标到指定的行之后,按【p】键执行粘贴操作。例如,这里在第10行即 shutdown 那行按【p】键,如下图所示。

1579ed1eea9947dbad31afd918e0d4a0.png 

自行按【u】键撤销

(3)剪切行。

ndd (n为数字)表示从当前行开始,一共剪切n行,用法与nyy类似。

但是如果不按【p】键粘贴,则这几行就是删除的意思。

如果想把从当前行开始到最后一行全部删除,可以按【dG】键或随便按一个比较大的数 字,然后按【dd】键,如【9999dd】。

(4)删除字符。

  在光标所在的字符位置按【x】键,就可以删除此字符。如果想删除当前光标往后所有的 字符,可以按一个比较大的数字,然后按【x】键,如【9999x】。

(5)定位行。

  按【nG】键(n为数字),光标跳到第n行。如果想切换到最后一行,直接按【G】键。如 果想跳到第一行,直接按【gg】键。(6)替换。

(6)替换。

  如果想替换当前光标的字符,先按【r】键,然后按所要替换的字符就可以了。例如,当 前光标是在a上,如下图所示。

4e3fb2e9d9634a14a68c80e15f75c3b7.png

此时按一下【r】键,再按一个【9】键,这样就可以把a替换成【9】了,如下图所示。

4f8616c0428d4793a43ce2f64f991177.png

  按小写的【r】键只是做一次替换,如果想再替换其他字符,还需要按【r】键才行。如果 想一直处于替换状态,则需要按大写的【R】键,这样当替换当前字符之后,光标会跳到下 一个字符并处于替换状态,我们可以通过调整光标来替换所要替换的字符,直到按【Esc】 键结束。   

(7)撤销。

如果编辑错了,可以按【u】键撤销,类似于 Word中的撤销操作。

(8)前进。

前进符,按【Ctrl+R】组合键。

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/255827.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

读者和写者问题

它可以解决的问题: 可以支持多个读者访问,通过count计数 来实现多个读者访问的时候是互斥的,不会出现不符合进程同步的问题:设置mutex互斥锁,保证count或count--和if Pv(mutex)是一气呵成的 读写公平,通过…

elk(filebeat)日志收集工具

elk(filebeat)日志收集工具 elk:filebeat日志收集工具 和logstash相同 filebeat是一个轻量级的日志收集工具,所使用的系统资源比logstash部署和启动时使用的资源要小得多 filebeat可以运行在非Java环境。他可以代理logstash在…

LinuxBasicsForHackers笔记 -- 进程管理

进程是一个正在运行和使用资源的程序。 Linux 内核是操作系统的内核,几乎控制着一切,在创建进程时,它会按顺序为每个进程分配一个唯一的进程 ID (PID)。 查看进程 ps – 用于在命令行查看哪些进程处于活动状态。单独使用 ps 命令并不能真正…

SSL证书代理

众所周知,SSL证书已经成为当下网络安全中不可或缺的一个环节,对于很多开发公司来说,给自己的客户提供SSL证书安全服务也是最为基础的。 但是目前市面上像阿里云之类的证书服务商对于开发公司需要的证书并没有太大的一个优惠政策,给…

鸿蒙原生应用/元服务开发-Stage模型能力接口(一)

ohos.app.ability.Ability (Ability基类)一、说明 UIAbility和ExtensionAbility的基类,提供系统配置更新回调和系统内存调整回调。本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。本模块接口仅可在Stag…

排序算法——桶排序/基数排序/计数排序

桶排序 是计数排序的升级版。它利用了函数的映射关系,高效与否的关键就在于这个映射函数的确定。桶排序 (Bucket sort)的工作的原理: 假设输入数据服从均匀分布,将数据分到有限数量的桶里,每个桶再分别排序(有可能再使…

刷题学习记录(文件上传)

[GXYCTF 2019]BabyUpload 知识点&#xff1a;文件上传.htaccessMIME绕过 题目直接给题目标签提示文件上传的类型 思路&#xff1a;先上传.htaccess文件&#xff0c;在上传木马文件&#xff0c;最后蚁剑连接 上传.htaccess文件 再上传一个没有<?的shell 但是要把image/pn…

通达OA inc/package/down.php接口存在未授权访问漏洞

声明 本文仅用于技术交流&#xff0c;请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;文章作者不为此承担任何责任。 一. 产品简介 通达OA&#xff08;Office Anywhere网络智能办公系统&am…

服务器RAID系统的常见故障,结合应用场景谈谈常规的维修处理流程

常见的服务器RAID系统故障包括硬盘故障、控制器故障、电源故障、写入错误和热插拔错误。下面结合这些故障的应用场景和常规维修处理流程来详细讨论&#xff1a; 硬盘故障&#xff1a; 应用场景&#xff1a;在服务器RAID系统中&#xff0c;硬盘故障是最常见的问题之一。硬盘可能…

ZStack Cloud云平台服务中国化学工程集团高性能数据库

中国化学工程通过ZStack Cloud云平台构建云基础设施&#xff0c;并为其提供高性能、高可用的云主机、云存储和云网络服务&#xff1b;并通过ZStack Cloud云平台弹性裸金属能力ZStack RDS数据库云平台&#xff0c;满足高性能数据库和多种数据库统一管理的需求&#xff1b;此外&a…

Windows 11安装Burp

我这里安装的软件来自百度网盘。 安装JDK 把jdk-15.zip进行解压。 解压之后的目录里边的内容如下&#xff1a; 鼠标右键点击此电脑&#xff0c;然后选择属性。 选择高级系统设置。 选择环境变量。 点击新建 变量名写上JAVA_HOME&#xff0c;变量值写到bin目录上一级…

软件设计之装饰模式

装饰模式把每个要装饰的功能放在单独的类中&#xff0c;并让这个类包装它所要装饰的对象&#xff0c;因此&#xff0c;当需要执行特殊行为时&#xff0c;客户代码就可以在运行时根据需要有选择地、按顺序地使用装饰功能包装对象。 案例&#xff1a;穿搭。衣柜有帽子、眼镜、…