Linux Vi/Vim使用 ⑥

掌握 CentOS 7 下的 Vi/Vim 编辑器:从安装到精通

在 CentOS 7 系统的日常运维、编程开发以及各类文本处理场景中,Vi/Vim 编辑器都是不可或缺的得力工具。它以轻量、高效、功能强大著称,虽然初次上手有一定学习门槛,但掌握之后便能大幅提升工作效率。今天,咱们就从安装讲起,一步步深入 Vi/Vim 的奇妙世界,借助丰富的代码案例,让你轻松上手。

一、安装 Vim 编辑器

CentOS 7 默认预装了基础版的 Vi,但为了享受更多高级功能,我们通常会选择安装功能更完备的 Vim。安装过程非常简单,利用系统自带的软件包管理工具 yum 即可快速搞定。

打开终端,输入以下命令:

yum install vim -y

这里,yum 是 CentOS 7 系统中强大的包管理器,负责软件的安装、更新与卸载;installyum 命令的一个关键子命令,明确告知系统要执行安装操作;vim 自然就是我们的目标软件包名称;-y 参数很贴心,它的作用是自动应答所有安装过程中的确认提示,让安装一气呵成,无需手动逐个确认,大大节省时间。

安装完成后,输入 vim --version 来验证安装情况,你会看到类似如下的版本信息输出:

VIM - Vi IMproved 7.4.160 (2016 Aug 10, compiled Aug  2 2017 03:49:32)
Included patches: 1-160
Modified by <bugzilla@redhat.com>
Compiled by <bugzilla@redhat.com>
...

看到这些信息,就说明 Vim 已经成功入驻你的系统啦。
以下是为你补充了 vivim 操作参数表格的内容,方便更清晰对比和查看相关操作:

vivim 常用操作参数表格

操作分类操作描述vi 命令格式示例vim 命令格式示例说明
启动编辑器打开已有文件vi /etc/hostsvim /etc/hosts/etc/hosts 可替换为实际要编辑的文件路径,vi 为基础版,vim 功能更丰富
新建文件vi new_file.txtvim new_file.txt创建名为 new_file.txt 的新空白文件,按需替换文件名
退出编辑器正常保存并退出:wq(先按 Esc 进入命令模式后输入):wq(先按 Esc 进入命令模式后输入)保存文件内容并关闭编辑器
不保存直接退出:q!(先按 Esc 进入命令模式后输入):q!(先按 Esc 进入命令模式后输入)强制忽略未保存修改,直接关闭编辑器
只保存不退出:w(先按 Esc 进入命令模式后输入):w(先按 Esc 进入命令模式后输入)仅保存当前文件内容,可继续编辑
光标移动(命令模式)移到文件开头gggg快速将光标定位到文件首行开头位置
移到文件末尾GG快速将光标定位到文件最后一行开头位置
移到指定行(如第 n 行)nGnG将光标定位到指定的第 n 行开头,n 为具体行数数字
向左移动光标hh按一次光标向左移动一个字符位置
向下移动光标jj按一次光标向下移动一个字符位置
向上移动光标kk按一次光标向上移动一个字符位置
向右移动光标ll按一次光标向右移动一个字符位置
文本删除(命令模式)删除单个字符xx将光标移到要删除的字符上,按下此键删除该字符
删除整行dddd将光标移到要删除的行,按下此键删除整行内容
文本复制粘贴(命令模式)复制一行yyyy将光标移到要复制的行,按下此键复制该行内容
粘贴pp将光标移到目标粘贴位置,按下此键粘贴已复制的内容
插入模式进入(命令模式切换)在光标当前位置插入文字ii进入插入模式,可在光标所在位置开始输入文字,按 Esc 键返回命令模式
在光标后面位置插入文字aa进入插入模式,在光标后开始输入文字,按 Esc 键返回命令模式
在当前行下方新开一行并插入文字oo进入插入模式,在当前行下方新开一行用于输入文字,按 Esc 键返回命令模式
末行模式操作(命令模式切换)保存并退出:wq:wq先按 : 键进入末行模式,再输入此命令保存并退出编辑器
查找替换(全局):%s/要替换的内容/替换后的内容/g:%s/要替换的内容/替换后的内容/g先按 : 键进入末行模式,如将文件内所有 the 替换成 a 可输入 :%s/the/a/g,回车执行替换操作
查找替换(指定行):n s/要替换的内容/替换后的内容/gn 为行数):n s/要替换的内容/替换后的内容/gn 为行数)先按 : 键进入末行模式,如替换第 3 行的 the 可输入 :3s/the/a/g,回车执行替换操作

通过这个表格,可以更直观地对比 vivim 在相同操作类型下的命令格式,有助于更快速准确地在不同场景下使用它们进行文本编辑操作。同时结合前面文档中详细的文字描述和案例讲解,相信能更好地掌握这两个编辑器的使用方法哦。

希望这份补充内容符合你的需求,要是还有其他想添加或者修改的地方,可以继续向我提问呀。

二、Vi/Vim 编辑器的启动与退出

(一)启动编辑器

要打开一个已有的文件,比如编辑 /etc/hosts 文件(这可是系统网络配置的关键文件,修改时要倍加小心),在终端敲下:

vim /etc/hosts
或者
vi /etc/hosts

要是想用基础版的 Vi,把 vim 换成 vi 就行。文件瞬间在编辑器窗口中打开,光标稳稳落在首行开头,等待你大展拳脚。

要是想新建一个文件,例如记录日常学习笔记,创建一个名为 learning_notes.txt 的文件,只需输入:

vim learning_notes.txt
或者
vi learning_notes.txt

编辑器马上新建一个空白文档,准备好迎接你的文字。

(二)退出编辑器

退出环节有好几招,各有各的妙处。

正常保存并退出:精心编辑完 learning_notes.txt,想保存成果并潇洒离场,先按下键盘上的 Esc 键,确保进入命令模式,接着输入 :wq 然后回车。这里的 :w 代表 write,意思是保存文件内容;q 表示 quit,就是退出编辑器,二者联手实现完美收官。操作示例如下:

# 编辑完毕,按下 Esc 键
: wq
# 回车,文件保存,编辑器关闭

不保存直接退出:要是觉得这次编辑不太满意,改动都不想要了,按下 Esc 键进入命令模式,紧接着输入 :q! 回车。注意这个 !,它起着强制的作用,让编辑器无视那些未保存的修改,强行退出。演示如下:

# 按下 Esc 键进入命令模式
: q!
# 回车,编辑器直接关闭,修改未保存

只保存不退出:编辑到一半,担心电脑出状况丢了辛苦写的内容,想先存个档?按 Esc 键进入命令模式,输入 :w 回车就行。操作如下:

# 编辑中途,按下 Esc 键
: w
# 回车,文件保存,可继续编辑

三、深入探索三种模式

Vi/Vim 编辑器最精妙之处在于其三模式设计:命令模式、插入模式、末行模式,灵活切换、熟练运用是掌握它的关键。

(一)命令模式(Command Mode)

这是打开 Vi/Vim 编辑器的默认模式,掌管着光标移动、文本删改、复制粘贴等诸多本领。

  1. 光标移动操作
    假设正在编辑 test.txt 文件,内容如下:
The quick brown fox jumps over the lazy dog.
Another line for testing cursor movement.

最直观的,你能用键盘上的方向键操控光标走向;同时,还有一套高效的快捷键——h(向左移动光标)、j(向下移动光标)、k(向上移动光标)、l(向右移动光标)。要是光标在首行开头,想快速移到首行末尾,连按 l 键就行:

# 光标处于首行开头
l
l
l
l
l
l
l
l
l
l
# 光标移至 'dog.' 的 '.' 位置

要是想迅速回到文件开头,按下 gg;想直达文件末尾,按 G;要是想去指定行,比如第 3 行,输入 3G 就行。

  1. 文本删除操作
    碰上文件里有多余字符或行要清理的时候,这些操作就派上用场了。
    删除单个字符,把光标移到目标字符上,按下 x 键。比如说想删去第二行的 r 字符:
# 移动光标到第二行 'r' 字符位置
x
# 该行变为 'Another line fo testing cursor movement.'

要是一整行都多余,把光标移到该行,按 dd 键就能删除整行。要是觉得第二行没用了,操作如下:

# 移动光标到第二行
j
# 按 dd 键删除该行
dd
# 文件就剩一行:The quick brown fox jumps over the lazy dog.
  1. 文本复制粘贴操作
    想复制一行内容,先把光标移到该行,按下 yy 键;粘贴的时候,把光标移到目标位置,按 p 键就行。比如复制首行,贴到文末:
# 移光标到首行
gg
# 按 yy 复制首行
yy
# 移光标到文末
G
# 按 p 粘贴
p
# 文件内容变成:
# The quick brown fox jumps over the lazy dog.
# The quick brown fox jumps over the lazy dog.

(二)插入模式(Insert Mode)

从命令模式按下特定按键,就能进入这个自由输入文字的模式。

想在光标当前位置插入文字,按下 i 键。要是文件里 test 拼成了 tset,移光标到 s 后,按 i 键输入 e 修正,再按 Esc 回命令模式:

# 移光标到 's' 后
i
# 输入 'e'
e
# 按 Esc,单词变回 'test'

要是想在光标后面位置插入文字,按 a 键。比如想在 Thequick 间加 very,移光标到 The 后空格,按 a 键输入 very,按 Esc 回命令模式:

# 移光标到指定位置
a
# 输入'very'very
# 按 Esc,变为 'The very quick brown fox jumps over the lazy dog.'

要是想在当前行下方新开一行并插入文字,按下 o 键。假设文件最后一行写完了,想新开一行写总结,移光标到末行,按 o 键,输入总结内容,再按 Esc 回命令模式:

# 移光标到末行
# 按 o 键新开一行
o
# 输入总结内容,例如 'This is the end of the text.'
This is the end of the text.
# 按 Esc 完成操作

(三)末行模式(Last Line Mode)

在命令模式下按下 : 键,就进入了这个用于执行关键操作的末行模式。

保存文件与退出编辑器的操作咱们前面提过了,再来说说查找替换功能。

假设 test.txt 文件里多次出现 the,想把它们全换成 a,在命令模式下按下 : 键进入末行模式,输入 :%s/the/a/g 回车。这里,% 表示针对整个文件;ssubstitute 的简写,意为替换;the 是要被替换的内容;a 是替换后的内容;g 表示全局替换,要是不加 g,只替换每行第一个匹配项。操作如下:

# 在命令模式下按 : 键进入末行模式
:
# 输入查找替换命令,然后回车
:%s/the/a/g
# 文件里所有 'the' 都被替换成 'a'

要是只想替换指定行内的内容,比如只替换第 2 行的 the,输入 :2s/the/a/g 回车就行。

四、总结与练习

Vi/Vim 编辑器功能远不止这些,咱们今天学的只是冰山一角。初次接触可能觉得模式切换有点绕,但多练习、多实操,形成肌肉记忆,很快就能得心应手。

以下是一个综合练习案例,涵盖了前面所讲的 Vi/Vim 编辑器的相关知识点:

练习案例

现有一个名为 practice.txt 的文本文件,内容如下:

The beautiful flower grows beside the small path.
There are many stones on the path.
The color of the flower is red.

请按照以下要求对该文件进行操作:

  1. 启动 Vim 编辑器打开 practice.txt 文件。
  2. 将光标快速移动到文件末尾,然后再移动回文件开头。
  3. 删除第二行整行内容。
  4. 复制第三行内容,并粘贴到第一行下方。
  5. 在第一行 “The” 和 “beautiful” 之间插入单词 “very”。
  6. 进入末行模式,将文件中所有的 “the” 替换成 “a”(全局替换)。
  7. 保存文件并退出编辑器。

操作步骤及答案

  1. 启动 Vim 编辑器打开 practice.txt 文件
    在终端输入以下命令:
vim practice.txt
  1. 将光标快速移动到文件末尾,然后再移动回文件开头
    进入编辑器后,按 G 键可将光标快速移动到文件末尾;再按 gg 键,就能将光标移动回文件开头。
  2. 删除第二行整行内容
    先通过按 j 键将光标移动到第二行(也可以使用其他光标移动快捷键组合来定位),然后按下 dd 键,即可删除第二行整行内容。此时文件内容变为:
The beautiful flower grows beside the small path.
The color of the flower is red.
  1. 复制第三行内容,并粘贴到第一行下方
    将光标移动到第三行(可以使用 3G 等方式快速定位),按下 yy 键复制该行内容;接着将光标移动到第一行末尾(可以通过多次按 l 键或者使用其他合适的光标移动操作),按下 p 键进行粘贴。此时文件内容变为:
The beautiful flower grows beside the small path.
The color of the flower is red.
The color of the flower is red.
  1. 在第一行 “The” 和 “beautiful” 之间插入单词 “very”
    将光标移动到第一行 “The” 后的空格处,按下 i 键进入插入模式,接着输入 “very”,再按 Esc 键返回命令模式。此时第一行内容变为 “The very beautiful flower grows beside the small path.”,文件整体内容如下:
The very beautiful flower grows beside the small path.
The color of the flower is red.
The color of the flower is red.
  1. 进入末行模式,将文件中所有的 “the” 替换成 “a”(全局替换)
    在命令模式下按下 : 键进入末行模式,输入 :%s/the/a/g 回车,即可完成全局替换操作。此时文件内容变为:
A very beautiful flower grows beside a small path.
A color of a flower is red.
A color of a flower is red.
  1. 保存文件并退出编辑器
    按下 Esc 键确保处于命令模式,然后输入 :wq 回车,就可以保存文件并退出 Vim 编辑器了。

通过这个练习案例,可以对前面所学的 Vi/Vim 编辑器的启动、光标移动、文本删除、复制粘贴以及末行模式下的查找替换、保存退出等知识点进行巩固练习,希望大家可以多多练习,熟练掌握 Vi/Vim 编辑器的使用哦。

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

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

相关文章

学生信息管理系统(简化版)

前端部分&#xff08;vue2&#xff09; &#xff01;&#xff01;前端采用vue2框架&#xff0c;下面只写出必要的代码文件&#xff0c;想要使用需自行先创建vue项目 部分截图 下面是目录结构 下面是public文件夹里面的html文件 <!DOCTYPE html> <html lang"&q…

Facebook广告文案流量秘诀

Facebook 广告文案是制作有效 Facebook 广告的关键方面。它侧重于伴随广告视觉元素的文本内容。今天我们的博客将深入探讨成功的 Facebook 广告文案的秘密&#xff01; 一、广告文案怎么写&#xff1f; 正文&#xff1a;这是帖子的正文&#xff0c;出现在您姓名的正下方。它可…

VBA高级应用30例应用在Excel中的ListObject对象:向表中添加注释

《VBA高级应用30例》&#xff08;版权10178985&#xff09;&#xff0c;是我推出的第十套教程&#xff0c;教程是专门针对高级学员在学习VBA过程中提高路途上的案例展开&#xff0c;这套教程案例与理论结合&#xff0c;紧贴“实战”&#xff0c;并做“战术总结”&#xff0c;以…

create-react-app react19 搭建项目报错

报错截图 此时运行会报错&#xff1a; 解决方法&#xff1a; 1.根据提示安装依赖法 执行npm i web-vitals然后重新允许 2.删除文件法 在index.js中删除对报错文件的引入&#xff0c;删除报错文件

【MySQL 进阶之路】事务并发情况分析

MySQL事务并发控制分析笔记 在数据库系统中&#xff0c;事务并发控制至关重要&#xff0c;能够确保多个事务并发执行时的数据一致性、隔离性和正确性。MySQL通过不同的锁机制控制并发操作&#xff0c;以确保事务的隔离性。以下是对事务A和事务B并发行为的详细分析&#xff0c;…

NanoLog起步笔记-6-StaticLogInfo

nonolog起步笔记-6-StaticLogInfo StaticLogInfo文件名和行号文件名和行号的传入log参数 RuntimeLogger::registerInvocationSitelogid为什么只能被赋一次值 reserveAlloc加入消息头finishAlloc返回 StaticLogInfo 写C语言编译前端时&#xff0c;给我印象深刻的一部分是&#…

不是“我应该做什么”,而是“我想做什么”

1. 识别内心的渴望 首先&#xff0c;我们需要识别自己真正的愿望和激情所在。这可能需要一些时间和自我反思。问自己&#xff1a;在没有任何外界压力的情况下&#xff0c;我真正想做的是什么&#xff1f;是赚钱、生活、旅行、追星&#xff0c;还是其他什么&#xff1f;识别这些…

Java-JMX (官方文档解读)

JMX 简介 JMX&#xff08;Java Management Extensions&#xff09;是Java平台的一个标准管理框架&#xff0c;自Java 1.5版本起成为Java 平台标准版 (Java SE 平台) 的标准组成部分。JMX 技术提供了一种简单、标准的方法来管理资源&#xff08;例如应用程序、设备和服务&#x…

商品期权开户条件是什么?

商品期权开户条件是什么&#xff1f; 商品期权是一种金融衍生品&#xff0c;它赋予期权持有者在特定日期&#xff08;欧式期权&#xff09;或在特定日期之前&#xff08;美式期权&#xff09;&#xff0c;以特定价格&#xff08;行权价格&#xff09;买入或卖出一定数量的某种…

RISC-V IO 虚拟化架构在 X100 芯片上的实现

安全之安全(security)博客目录导读 本篇博客,我们聚焦RISC-V 2024中国峰会上RISC-V虚拟化相关专题中的IOMMU虚拟化在X100芯片上的实现,来自进迭时空郑律老师。 我们先来看下X100的RISC-V芯片和已有的关于处理器内核虚拟化和内存虚拟化相关的支持 关于IOMMU的特性支持,下图红…

Windows 系统没有网络链接常见原因以及解决方案

在使用 Windows 电脑时&#xff0c;有时会遇到电脑显示已连接网络&#xff0c;但却无法访问 Internet 的情况&#xff0c;这可能是由多种原因导致的。以下简鹿办公将详细介绍一些常见原因及对应的解决方案。 一、网络连接问题 原因 路由器故障&#xff1a;路由器长时间运行可…

【Rive】事件回调

1 前言 Android 中可以通过 RiveAnimationView 的 addEventListener 方法添加动画监听器&#xff0c;用于监听状态动画和过渡动画的开始和结束时机&#xff0c;实现动画开始和结束时的事件回调&#xff1b;也可以监听 Rive 事件触发的时机&#xff0c;在事件触发时响应回调。 …

Springboot3整合Redis

书接上篇《Redis 安装篇&#xff08;阿里云服务器&#xff09;_阿里云安装redis-CSDN博客》&#xff0c;安装好Redis后&#xff0c;就需要在springboot项目中使用Redis了。 一、SpringBoot整合Redis 1.添加坐标 <!--redis--> <dependency><groupId>org.sp…

REDMI瞄准游戏赛道,推出小屏平板

近日&#xff0c;REDMI推出了一款8.8英寸的小屏平板&#xff0c;引发市场关注。该平板采用LCD屏幕&#xff0c;搭载天玑9400处理器&#xff0c;定位游戏市场&#xff0c;意在开拓小屏平板的新领域‌。 ‌小屏平板新尝试‌ 这款REDMI平板未追随大屏潮流&#xff0c;而是选择了8…

在Ubuntu上使用docker compose安装N卡GPU的Ollama服务

在现代计算环境中,利用 GPU 进行计算加速变得越来越重要。下面将讲解如何在Ubuntu上使用docker compose安装N卡GPU的Ollama服务。 1、安装 NVIDIA 容器工具 首先,需要确保你的系统已经安装了 NVIDIA 容器工具 nvidia-container-toolkit。这是让 Docker 容器访问 GPU 的关键…

OllyDbg、CE简单介绍

基础知识&#xff1a; 想要破解软件&#xff0c;需要一些基础知识&#xff1a; 文件格式&#xff1a;Windows对应PE、Linux对应ELF、IOS对应Mash-0。文件格式是指操作系统规定的每个段&#xff08;代码段、数据段、堆、栈&#xff09;的大小、顺序等信息。 汇编语言&#xff1…

泷羽sec学习打卡-brupsuite4

声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都 与本人无关,切莫逾越法律红线,否则后果自负 关于brupsuite的那些事儿-proxy proxyInterceptHTTP history/WebSocket history&#xff08;历史记录&a…

Wallpaper壁纸制作学习记录10

图像准备 外部图像编辑器快速访问 Wallpaper Engine 允许您配置自己喜欢的外部图像编辑器&#xff0c;以用作补充图像编辑工具&#xff0c;您可以在整个编辑器中快速访问该工具。 您可以在Wallpaper Engine 编辑器中配置您选择的图像编辑器&#xff0c;通过顶部的文件菜单&am…

【C++算法】36.位运算_只出现一次的数字 II

文章目录 题目链接&#xff1a;题目描述&#xff1a;解法C 算法代码&#xff1a;解析 题目链接&#xff1a; 137. 只出现一次的数字 II 题目描述&#xff1a; 解法 你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。说明时间复杂度O(n)&#xff0c;空间复杂…

transformer学习笔记-自注意力机制(1)

自注意力机制&#xff0c;可以说是transformer中最核心的部分之一&#xff0c;注意力机制&#xff0c;主要是在处理序列数据时&#xff0c;根据序列数据提供的上下文环境信息识别需要关注的特征数据&#xff0c;注意力机制通常用于不同序列之间的交互&#xff0c;表示不同序列环…