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 /homelsvim 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 文件内容:

lscat new.log

执行结果如下图:

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

9. 小结

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

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

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

相关文章

大屏设计:公说公有理婆说婆有理!错,看这十个判定标准。

“公说公有理,婆说婆有理”这句话通常用来形容争论双方都认为自己是正确的,而且都有自己的理由和观点。在设计中,这种情况也是很常见的。 为什么会公说公有理婆说婆有理? 设计是一门艺术和技术相结合的学科,涉及到很多…

【算法分析与设计】最大层内元素和

📝个人主页:五敷有你 🔥系列专栏:算法分析与设计 ⛺️稳中求进,晒太阳 题目 给你一个二叉树的根节点 root。设根节点位于二叉树的第 1 层,而根节点的子节点位于第 2 层,依此类推。 请返…

Qt的安装

下载安装包 我们选择Open Source的版本。 可以从https://www.qt.io/download-open-source直接下载最新版本,对于想要选择特定版本,或者尝试beta版功能的用户,也可以从https://download.qt.io选择自己需要的版本。 如果你的网速可以的话&am…

PCL库学习及ROS使用

PCL库学习 c_cpp_properties.json {"configurations": [{"name": "Linux","includePath": ["${workspaceFolder}/**","/usr/include","/usr/local/include"],"defines": [],"compiler…

2.14日学习打卡----初学Zookeeper(一)

2.14日学习打卡 目录: 2.14日学习打卡Zookeeper概念一. 集中式到分布式单机架构集群架构什么是分布式三者区别 二. CAP定理分区容错性一致性可用性一致性和可用性的矛盾一致性和可用性如何选择 三. 什么是Zookeeper分布式架构Zookeeper从何而来Zookeeper介绍 四. 应用场景数据发…

第六节笔记:OpenCompass 大模型评测

视频链接:https://www.bilibili.com/video/BV1Gg4y1U7uc/?spm_id_from333.788&vd_source3bbd0d74033e31cbca9ee35e111ed3d1

上位机图像处理和嵌入式模块部署(Halcon借鉴与客户学习)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 对于很多学院派的同学来说,他们对市场的感觉一般是比较弱的。如果写一个软件的话,或者说开发一个项目的话,他们…

2024 CKS 题库 | 9、网络策略 NetworkPolicy

不等更新题库 CKS 题库 9、网络策略 NetworkPolicy Task 创建一个名为 pod-restriction 的 NetworkPolicy 来限制对在 namespace dev-team 中运行的 Pod products-service 的访问。 只允许以下 Pod 连接到 Pod products-service namespace qaqa 中的 Pod位于任何 namespace&…

vue-自定义创建项目(六)

为什么要自定义创建项目? 因为VueCli默认创建的项目不能够满足我们的要求,比如默认的项目中没有帮我们集成路由,vuex,eslink等功能。 默认项目 自定义创建项目 流程: 创建项目命令:vue create custom_dem…

亚马逊测评:揭秘做号的“花招”与“猫腻”,如何避免被割韭菜?

亚马逊测评行业如今如火如荼,吸引了众多朋友投身其中。然而,这个行业也是五花八门,什么样的人和公司都有,让人眼花缭乱。作为卖家,如何选择靠谱的测评服务商是一门必修课;而对于初学者,如何入门…

SHERlocked93 的 2021 年终总结

我还是和往年一样,总结发的又晚了一点,为什么又发这么晚呢,因为懒 年终总结 疫情之后时间时间过的太快了,不知道是不是只有我这样感觉。 四五月份去兰州玩了下(其实是出差),终于看到了黄土高原&…

2024年蓝牙耳机推荐,值得入手的蓝牙耳机排行榜

​随着生活水平的提高,蓝牙耳机已经成为了许多人日常生活中不可或缺的数码产品。无论是听音乐、看视频还是打电话,蓝牙耳机都为我们提供了极大的便利。然而,面对市场上众多的蓝牙耳机品牌和型号,许多人感到无所适从。所以&#xf…

Linux第58步_备份busybox生成rootfs根文件系统

备份busybox生成rootfs根文件系统 打开终端 输入“ls回车” 输入“cd linux/回车” 输入“ls回车”,产看“linux”目录下的文件和文件夹 输入“cd nfs/回车”,切换到“nfs”目录 输入“ls回车”,产看“nfs”目录下的文件和文件夹 输入…

力扣OJ题——旋转数组

题目:189.旋转数组 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数 思路一: 1.每次挪动旋转1位(用tmp将最后一位存起来,其余所有数据向后移,然后将tmp放在第一个位…

RabbitMQ配置消息转换器

1. 默认转换器 Test public void testSendMap() throws InterruptedException {// 准备消息Map<String, Object> msg new HashMap<>();msg.put("name", "harry");msg.put("age", 21);// 发送消息rabbitTemplate.convertAndSend(&q…

无电池设备物联网的未来

在物联网(IoT)世界中&#xff0c;一种改变游戏规则的趋势正在出现&#xff0c;它就是无电池物联网。想象一下不需要普通电池的智能设备。这些被称为环境物联网(A-IoT)的独特小工具正在改变游戏规则。它们不再使用老式电池&#xff0c;而是通过无线电信号、光、振动和热量获取能…

Python一级考试笔记

Python一级考试笔记【源源老师】 前置知识&#xff1a;&#xff08;了解即可&#xff09; Python常见的几种编程环境&#xff1a;IDLE&#xff08;自带&#xff09;、Visual Studio Code、Jupyter、pyCharm&#xff1b; python版本&#xff1a;python3 和 python2&#xff08;…

STM32学习笔记(七) —— DMA传输(MTM)

DMA&#xff0c;全称是Direct Memory Access&#xff08;直接内存访问&#xff09;。可以在存储器和存储器之间或者外设和存储器之间传输数据&#xff0c;而不需要CPU的干预&#xff0c;这样可以节省CPU的资源&#xff0c;提高工作效率。 1.功能框图 STM32F103RCT6有两个DMA控…

东方博宜 1057. 能被5整除且至少有一位数字是5的所有整数的个数

东方博宜 1057. 能被5整除且至少有一位数字是5的所有整数的个数。 思路&#xff1a; 1 首先输入n 2 用for循环遍历1-n中间的数 3 每一个数进行对5取余的运算&#xff0c;看是否能被5整除 4 在整除的基础上&#xff0c;看这个数的各个数位上是否有5&#xff0c;这一步将数对10取…

OpenGL学习——15.投光物_聚光

前情提要&#xff1a;本文代码源自Github上的学习文档“LearnOpenGL”&#xff0c;我仅在源码的基础上加上中文注释。本文章不以该学习文档做任何商业盈利活动&#xff0c;一切著作权归原作者所有&#xff0c;本文仅供学习交流&#xff0c;如有侵权&#xff0c;请联系我删除。L…