18. 【Linux教程】vim 编辑器

前面小节介绍如何创建文件、移动文件、删除文件,但之前都没有介绍如何修改文件内容,本小节介绍如何使用 vim 编辑器对文件内容进行修改,另外介绍 vim 编辑器的安装和使用。

1. vim 编辑器简介

vim 编辑器是由 vi 发展而来的文本编辑器。它的功能有代码补全、编译、错误跳转等等,编其功能特别丰富,尤其在程序开发时被广泛使用,emacs 和 vim 两款编辑器在 UNIX 系统中非常受欢迎。

vim 编辑器的命令组合是它的设计理念。同时 vim 编辑器与很多快捷键设置和正则表达式类似,可以辅助记忆,并且优化之后的 vim 编辑器针对程序员很友好。

通过对前面小节的学习我们知道,在 Linux 操作系统中 “一切皆文件”,所以当我们在命令行窗口模式下想要更改文件的内容时,就不可避免地要利用到文本编辑器,学习如何使用文本编辑器,将会对您学习 Linux 文件相关的知识非常有帮助。

2. 检查 Linux 系统中是否安装 vim 编辑器

使用如何命令检查 vim 编辑器是否安装:

vim -v

执行结果如下图:

如果出现上图所示的内容的话,则表示没有安装 vim 。

3. 使用 yum 命令安装 vim 编辑器

使用 yum 命令安装 vim 编辑器命令如下:

yum -y install vim

执行结果如下图:

等待安装完成输入 vim -v 即可查看到 vim 编辑器的相关信息:

Tips:在如图所示的窗口下,可以输入 :q 回车就能退出。

4. vim 编辑器用法介绍

4.1 vim 编辑器三种模式

  • 普通模式:当你刚开始进入 vim 编辑器的时候默认会进入普通模式
  • 插入模式:在 vim 普通模式的时候,按下 i 键就可以进入插入模式,若想从 插入模式 回到 普通模式, 可以按下 ESC 键;
  • 命令模式:在普通模式下按下 : 键(Shift + :),若想从 命令模式 回到 普通模式,可以按下 ESC 键。

Tips:这三种模式其实就是文本编辑器当前的状态,普通模式 可以理解为一般的打开查阅文件,可以查看和查找文件内容,不能修改内容;插入模式 可以理解为编辑状态,能对当前的文件内容修改,但是想要保存就需要当前登录用户拥有该文件的写入权限才能保存成功;命令模式 中的命令操作可以理解为编辑器对编辑后的文件的退出、保存等操作,如 :wq 表示保存退出,:q! 表示不保存强制退出。

4.2 vim 光标移动键介绍

  • h(或←):光标往左移动一个字符;
  • j(或↓):光标往下移动一行;
  • k(或↑):光标往上移动一行;
  • l(或→):光标往右移动一个字符;
  • PageDown(或 Ctrl + F):光标往下翻动一屏;
  • PageUp(或 Ctrl + B):光标往上翻动一屏;
  • G:光标往下移动到最后一行;
  • n G:光标移动到缓冲区的第 n 行;
  • gg:光标往上移动到第一行。

4.3 命令行模式下的命令介绍

  • q:表示退出,若有修改内容按 q,则会提示 E37: 已修改但尚未保存 (可用 ! 强制执行)
  • q!:表示强制退出,不会保存修改的内容;
  • w:表示对修改的内容保存;
  • wq:表示保存并退出。

Tips:输入以上命令后,按回车即可执行命令。

4.4 普通模式下的命令介绍

命令参数名称功能与作用描述
x删除当前光标所在位置的字符
dd删除当前光标所在行
dw删除当前光标所在位置的单词
d$删除当前光标所在位置至行尾的内容
J删除当前光标所在行行尾的换行符(拼接符)
u撤销前一编辑命令
a在当前光标后追加内容,输入完按 ESC 即可退出 插入模式
A在当前光标所在行行尾追加数据
r char用 char 替换当前光标所在位置的单个字符
R text用 text 覆盖当前光标所在位置的数据,输入完按 ESC 即可退出 插入模式

5. 使用 vim 新建文件

进入 /home 目录,然后使用 vim 命令新建一个 new.log 文件,命令如下:

cd /home

ls

vim new.log

执行结果如下图:

如上图所示,建一个文件名为 new.log 的文件,面进入临时文件 new.log 界面,如下图所示:

Tips:此时的 new.log 文件并没有被保存,vim 编辑器是在内存缓冲区中处理数据的,若在启动 vim 编辑器时没有指定文件名或者文件不存在时,vim 编辑器会开辟一个新的缓冲区。

6. 使用 vim 编辑文件

在进入 vim 普通模式下,可以按下 i 键进入插入模式来编辑文件内容,如下图所示:

7. vim 编辑器保存退出

编辑完内容之后按下 ESC 键退出插入模式,然后输入 :wq 按回车之后既可以保存退出:

8. 使用 cat 查看 vim 编辑的文件

这里可以使用之前学习的 cat 命令查看新建的 new.log 文件内容:

ls

cat new.log

执行结果如下图:

Tips:也可以使用 vim new.log 打开文件查看内容。

9. 小结

本小节介绍了 vim 编辑器的基本功能和用法,需要注意的是 vim 编辑器还有很多其他丰富的用法,比如使用 vim 编辑器查看文件内容时,可以按下 ./ 然后输入关键字回车可以查找关键字,本小节的目的主要是学习 vim 编辑器基本的用法,并且能对文件进行修改和保存,熟悉本小节之后,您将掌握到如何在 Linux 命令行中对文件进行修改。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【qt创建线程两种方式】

QT使用线程的两种方式 1.案例进度条 案例解析: 如图由组件一个进度条和三个按钮组成,当点击开始的时候进度条由0%到100%,点击暂停,进度条保持之前进度,再次点击暂停变为继续,点击停止按钮进度条停止。 案…

03_uartLinux内核模块

01_basicLinux内核模块-CSDN博客文章浏览阅读23次。环境IDubuntuMakefilemodules:clean:basic.creturn 0;运行效果。https://blog.csdn.net/m0_37132481/article/details/136157384?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%…

禁止电子邮箱地址登录WordPress后台的插件No Login by Email Address

WordPress 4.5及之后的版本增加了使用注册用户的电子邮件地址代替用户名登录的功能,但是大多数个人站长的管理员邮箱地址都是固定,而且到其他站点进行评论留言也是同一个邮箱地址,很容易给一些别有用心的可乘之机,所以禁止WordPre…

备战蓝桥杯---数学之矩阵快速幂基础

我们先不妨看一道题&#xff1a; 看见n的数据范围就知道直接按以前的递归写肯定狗带&#xff0c;那我们有什么其他的方法吗&#xff1f; 下面是分析&#xff1a; 我们就拿斐波那契数列试试手吧&#xff1a; 下面是AC代码&#xff0c;可以当作模板记&#xff1a; #include<b…

二叉树(5)——链式二叉树

续上篇&#xff0c;我们继续讲解链式二叉树第K层的节点个数和查找值为x的节点的代码实现。 1 二叉树第K层的节点个数 思路分析 若为空&#xff0c;返回0不为空&#xff0c;且k1&#xff0c;返回1不为空&#xff0c;且k>1&#xff0c;返回左子树的k-1层右子树的k-1层 代码实…

十大经典排序算法之一--------------堆排序(java详解)

一.堆排序基本介绍&#xff1a; 堆排序是利用堆这种数据结构而设计的一种排序算法&#xff0c;堆排序是一种选择排序&#xff0c;它的最坏&#xff0c;最好&#xff0c;平均时间复杂度均为O(nlogn)&#xff0c;它也是不稳定排序。堆是具有以下性质的完全二叉树&#xff1a;每个…

深度学习-分类任务---经典网络

文章目录 经典网络1 LeNet51.1 模型结构1.2 模型结构1.3 模型特性 2 AlexNet2.1 模型介绍2.2 模型结构2.3 模型解读2.4 模型特性 3 可视化ZFNet-转置卷积3.1 基本的思想及其过程3.2 卷积与转置卷积3.3 卷积可视化3.4 ZFNet和AlexNet比较 4 VGGNet4.1 模型结构4.2 模型特点 5 Ne…

MySQL数据库基础(九):SQL约束

文章目录 SQL约束 一、主键约束 二、非空约束 三、唯一约束 四、默认值约束 五、外键约束&#xff08;了解&#xff09; 六、总结 SQL约束 一、主键约束 PRIMARY KEY 约束唯一标识数据库表中的每条记录。主键必须包含唯一的值。主键列不能包含 NULL 值。每个表都应该有…

全国今日油价一键查询API:轻松了解油价新闻

导语&#xff1a; 随着能源需求的增长&#xff0c;油价成为全球经济的重要指标之一。了解油价的动态变化对于企业和个人来说都至关重要。本文介绍了一款全国今日油价一键查询的API接口&#xff0c;通过该接口可以轻松获取全国各省汽油和柴油的最新价格&#xff0c;并结合油价新…

【linux网络的综合应用】补充网关服务器搭建,综合应用SNAT、DNAT转换,dhcp分配、dns分离解析,nfs网络共享以及ssh免密登录

实验拓朴图&#xff1a; 1&#xff09;网关服务器&#xff1a;ens36&#xff1a;12.0.0.254/24&#xff0c;ens33&#xff1a;192.168.100.254/24&#xff1b;Server1&#xff1a;192.168.100.101/24&#xff1b;PC1和server2&#xff1a;自动获取IP&#xff1b;交换机无需配置…

Prometheus安装

一、Prometheus的简介 Prometheus是一种开源的监控和警报工具&#xff0c;用于收集、存储和查询各种系统和服务的指标数据。它具有灵活的查询语言和强大的可视化功能&#xff0c;可用于实时监控应用程序性能和状态。 二、Prometheus下载 1、官网下载地址 下载Prometheus 2、P…

蓝队应急响应工具箱v2024.1​

1 蓝队工具箱 v2024.1 2 简介 蓝队工具箱是为打造一款专业级应急响应的集成多种工具的工具集&#xff0c;由真实应急响应环境所用到的工具进行总结打包而来&#xff0c;由 ChinaRan404,W 啥都学,清辉等开发者编写.把项目现场中所用到的工具连同环境一同打包&#xff0c;并实…

Spring Boot 笔记 023 注册页面

1.1 request.js请求工具 //定制请求的实例//导入axios npm install axios import axios from axios; //定义一个变量,记录公共的前缀 , baseURL const baseURL /api; const instance axios.create({baseURL})//添加响应拦截器 instance.interceptors.response.use(result…

机器学习入门--双向长短期记忆神经网络(BiLSTM)原理与实践

双向长短记忆网络&#xff08;BiLSTM&#xff09; BiLSTM&#xff08;双向长短时记忆网络&#xff09;是一种特殊的循环神经网络&#xff08;RNN&#xff09;&#xff0c;它能够处理序列数据并保持长期记忆。与传统的RNN模型不同的是&#xff0c;BiLSTM同时考虑了过去和未来的…

[Flink02] Flink架构和原理

这是继第一节之后的Flink入门系列的第二篇&#xff0c;本篇主要内容是是&#xff1a;了解Flink运行模式、Flink调度原理、Flink分区、Flink安装。 1、运行模式 Flink有多种运行模式&#xff0c;可以运行在一台机器上&#xff0c;称为本地&#xff08;单机&#xff09;模式&am…

图像识别之ResNet(结构详解以及代码实现)

前言 在人工智能的浪潮中&#xff0c;深度学习已经成为了推动计算机视觉、自然语言处理等领域突破的关键技术。在这众多技术中&#xff0c;ResNet&#xff08;残差网络&#xff09;无疑是一个闪耀的名字。自从2015年Kaiming He等人提出ResNet架构以来&#xff0c;它不仅在图像…

【二十八】springboot整合logback实现日志管理

本章节是记录logback在springboot项目中的简单使用&#xff0c;本文将会演示如何通过logback将日志记录到日志文件或输出到控制台等管理操作。将会从以下几个方面进行讲解。最后实现将特定级别的特定日志保存到日志文件。 一、依赖 <dependency><groupId>ch.qos.l…

BMS再进阶(新能源汽车电池管理系统)

引言 一文入门BMS&#xff08;电池管理系统&#xff09;_bms电池管理-CSDN博客 BMS进阶&#xff08;Type-C、PD快充、充电IC、SOC算法、电池管理IC&#xff09;_充电ic asi aso功能-CSDN博客 本文是上面两篇博客的续篇&#xff0c;之前都是讲解一些BMS基本原理&#xff0c;…

目前2024年4核8G云服务器租用价格,阿里云PK腾讯云

4核8G云服务器多少钱一年&#xff1f;阿里云ECS服务器u1价格955.58元一年&#xff0c;腾讯云轻量4核8G12M带宽价格是646元15个月&#xff0c;阿腾云atengyun.com整理4核8G云服务器价格表&#xff0c;包括一年费用和1个月收费明细&#xff1a; 云服务器4核8G配置收费价格 阿里…

[Flink03] Flink安装

本文介绍Flink的安装步骤&#xff0c;主要是Flink的独立部署模式&#xff0c;它不依赖其他平台。文中内容分为4块&#xff1a;前置准备、Flink本地模式搭建、Flink Standalone搭建、Flink Standalong HA搭建。 演示使用的Flink版本是1.15.4&#xff0c;官方文档地址&#xff1…