Linux:初识【VI / VIM编辑器】

news2024/11/25 4:18:03

Linux系统版本:centos 7.5 x64位
VMware版本: VMware Workstation Pro 16

文章目录

  • 一、VI / VIM是什么?
    • 1.1 VI编辑器
    • 1.2 VIM编辑器
  • 二、为什么要使用VI / VIM编辑器?
  • 三、如何使用VI / VIM编辑器?
    • 3.1 一般模式
    • 3.2 编辑模式
    • 3.3 命令模式
    • 3.4 模式间的转换


一、VI / VIM是什么?

1.1 VI编辑器

VI是Unix操作系统和类Unix操作系统【Linux系统】中最通用的文本编辑器。它是由加州大学伯克利分校,Bill Joy研究开发的文本编辑器

在这里插入图片描述

在Linux系统中使用VI编辑器打开文件是这样的,如下所示:
在这里插入图片描述

1.2 VIM编辑器

VIM编辑器是从VI发展出来的一个性能更强大的文本编辑器。它可以主动以字体颜色辨别语法的正确性,方便程序设计。VIM与VI编辑器完全兼容。如果安装的Linux操作系统是纯命令行的,即最小化安装,那么没有vim编辑器,需要在联网的情况下通过以下命令安装:

yum -y install vim

在Linux系统中使用VI编辑器打开文件是这样的,如下所示:

在这里插入图片描述

👍的确很强大,使用不同的文本使用不同的颜色进行高亮的显示,便于开发者辨析语法的正确与错误!!!


二、为什么要使用VI / VIM编辑器?

使用VI / VIM编辑器有如下好处:

  • 快速专业的程序员大多已经非常熟悉vim编辑器,因为它有着强大的快捷键和命令,就可以更快地进行文本编辑和代码编写。
  • 兼容随着linux系统的广泛普及,vim已经成为了一个应用非常普遍的工具。在长期的使用中,人们发现即使在较旧的系统上也很可能安装它。因此,无论身处何时,身处何地,面对一台未知的计算机,只需要对它做一些调整,无需额外安装任何软件,就可以使用vim工具完成编辑任务。
  • 自定义VIM允许用户配置并自定义其编辑环境,以便于满足他们的需要。用户可以通过配置文件对其进行定制,例如添加插件、修改颜色方案等。
  • 稳定: VIM是一个稳定且可靠的文本编辑器,它极少出现崩溃或发生错误。因此当用户正在写一个长时间的编辑文本时,这一点尤为重要。

三、如何使用VI / VIM编辑器?

VI / VIM编辑器的使用基本上离不开它的三大使用模式【 一般模式,命令模式,编辑模式】

注意:当你使用VI / VIM编辑器 编辑一个不存在的文件时,它会自动创建;如果存在,就是更新该文件内容

3.1 一般模式

以vi / vim打开一个【文件】就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、贴上』来处理你的文件数据。

使用以下常用命令,以提高编辑文件效率

语法功能描述
yy复制光标当前一行
y数字y复制一段(从第几行到第几行)
p箭头移动到目的行粘贴
u撤销上一步
dd删除光标当前行
d数字d删除光标(含)后多少行
x删除一个字母,相当于del,向后删
X删除一个字母,相当于Backspace,向前删
yw复制一个词
dw删除一个词
^移动到行头
$移动到行尾
gg或者1+G移动到页头(第一行)
G移动到页尾(最后一行)
数字+G(先输入数字,在按G)移动到目标行

3.2 编辑模式

一般模式中可以进行删除、复制、粘贴等的动作,但是无法编辑文件内容。要等到你按下 【i, I, o, O, a, A】 等任何一个字母之后才会进入编辑模式。

注意:

通常在Linux中,按下这些按键时,在画面的左下方会出现 INSERTREPLACE 的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下 【Esc】 这个按键即可退出编辑模式。

1)进入编辑模式

按键功能
i当前光标前
a当前光标后
o当前光标行的下一行
I光标所在行最前
A光标所在行最后
O当前光标行的上一行

2)退出编辑模式

按『Esc』键

3.3 命令模式

在一般模式当中,输入 【 : / ?】3个中的任何一个按钮,就可以将光标移动到最底下那一行。

在这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等动作是在此模式中达成的!

1)基本语法

表1-3

命令功能
:w保存
:q退出
:!强制执行
: %s/old字符/new字符批量替换
/ 要查找的词n 查找下一个,N 往上查找
? 要查找的词n是查找上一个,N是往下查找
:set nu显示行号
:set nonu关闭行号
ZZ(shift+zz) :nohl没有修改文件直接退出,如果修改了文件保存后退 去除高亮显示

注意:当你使用Vim 编辑文件时,如果不小心按了 Ctrl+Z,非正常退出文件编辑,就会出现一个文件名前缀为".",后缀为“.SWP"的【临时交换文件】,该文件是使用vi / vim 编辑一个文件时产生的,但此文件会在编辑完成正常退出时自动删除。

在这里插入图片描述

每次键入命令: vim anaconda-ks.cfg 【举例说明】时,都会出现以下界面:

在这里插入图片描述

在这里插入图片描述

3.4 模式间的转换

在这里插入图片描述

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

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

相关文章

keil MDK5插件推荐——Astyle代码格式化插件

前言 代码格式化是提高代码质量和可读性的重要手段之一。然而,在Keil MDK5中并没有内置代码格式化工具,因此需要寻找第三方工具来解决这个问题。开源的代码格式化工具Astyle能以插件的形式集成到Keil中以满足我们对代码格式化的需求。 本文将详细介绍如…

《永恒之塔sf私服》“龙战前传”里的更高挑战-

关于这个新版本的各种更新内容已经屡见不新,无论是最新关注的玩家,抑或是一直坚守在永恒之塔阵地的老玩家们,相信已经对各种感兴趣的更新倒背如流。这里就不再重复。 每一款MMO游戏升级,伴随着玩家技术和战术的长进,游…

【Unity-UGUI控件全面解析】| ScrollView 滚动视图组件详解

🎬【Unity-UGUI控件全面解析】| ScrollView 滚动视图组件详解一、组件介绍二、组件属性面板三、代码操作组件四、组件常用方法示例💯总结🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN🙉 🎄 学习专栏推荐:Unity系统学习…

火线、零线和地线及开关接线参考

火线、零线和地线及开关接线参考 1. 火线、零线和地线 1.1. What is Live wire? Live wire,L:火线,相线火线是电路中输送电的电源线。 1.2. What is Neutral wire? Neutral wire,N:零线零线是由发电机或变压器二…

AD 实现多 DC + 多 ADFS 高可用部署

总览 在本篇文章中, 我将记录部署多 DC 多 ADFS 实现高可用方案的详细步骤, 期间我会尽量使用 PowerShell 来实现相应的动作, 实在找不到命令或者 GUI 更方便的再附截图. 主要步骤分为: 部署 2 台 DC 服务器提供 AD 服务 (AD域名 alian.com)安装 ADCS 角色为 ADFS 提供证书服…

NodeJs模块化之下半部分

Node.js 中的模块化 更多精彩内容,请微信搜索“前端爱好者“, 戳我 查看 。 官网地址:https://nodejs.cn/api/ fs 文件系统 地址:https://nodejs.cn/api/fs.html#%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F node:fs 模块能够以标准…

GPT-3 面试题

简介 1、GPT-3 是什么?它是基于什么模型的? GPT-3是一种基于深度学习原理的语言预测模型。它是由OpenAI开发的,可以从互联网数据中生成任何类型的文本。它只需要一小段文本作为输入,就可以生成大量的准确和复杂的机器生成文本⁴…

Akura Medica:新型静脉血栓切除系统,完成首次人体试验

Akura Medical公司宣布,其机械血栓切除平台在人体首次使用成功,这是一项具有突破性的技术,可以有效地治疗肺栓塞、深静脉血栓等血栓栓塞疾病。该平台使用了一种与众不同的方法,可以高效地清除血管内的血栓,同时保护血管…

测试分词工具Lucene.Net.Analysis.PanGu(盘古分词)

从微信公众号及百度文章来看,全文检索的前置工作是分词,首先将要做全文检索的内容分词,然后采用全文检索模块或工具进行全文检索。参考文献4介绍了基于Lucene.net实现全文检索的大致思路,其采用的是Lucene.net盘古分词的方式实现。…

蓝桥:前端开发笔面必刷题——Day1 数组(一)

文章目录 📋前言🎯数组中重复的数字📚题目内容✅解答 🎯两数之和📚题目内容✅解答 🎯替换空格📚题目内容✅解答 🎯二维数组中的查找📚题目内容✅解答 📝最后 …

C语言-程序环境与预处理

程序环境与预处理 程序环境翻译环境(编译链接)预编译编译汇编链接 执行环境 预处理预定义符#define定义的标识符 宏#define定义宏#define替换规则宏的命名约定带副作用的宏参数宏和函数的比较 其它#和##的使用字符串常量化运算符#标记粘贴运算符## 命令行…

fastled教程

文章目录 EVERY_N_MILLISECONDS(10)EVERY_N_SECONDS(5)fill_solid(leds, NUM_LEDS, CRGB::Red);fill_gradient_RGBfill_rainbow(leds, NUM_LEDS, i, 255 / NUM_LEDS);效果1fadeToBlackBy(leds, NUM_LEDS, 1); 效果2FastLED.setBrightness(2*i);// 效果3leds[i] CHSV(hue (i *…

scanf和scanf_s的区别、解决VS返回值被忽略的报错问题

一、scanf和scanf_s是什么? scanf()不会检查输入边界,可能造成数据溢出。 scanf_s()会进行边界检查。 二、分别分析 1.scanf scanf表示从键盘输入指定格式的数据。如:scanf("%d",x);指从键盘给x输入一个int型(整型&…

【计网】【TCP】浅析TCP三次握手

前言 之前学习计网时不认真,TCP三次握手稀里糊涂就过去了,最近在重新查漏补缺计网这方面的知识,饭要一口一口吃,我就没有把其中涉及到的大量知识点写在此博客中,此文仅管中窥豹,之后再详细写吧。 笔记中有…

初步认识性能测试和完成一次完整的性能测试

上一篇博文主要通过两个例子让测试新手了解一下测试思想,和在做测试之前应该了解人几点,那么我们在如何完成一次完整的性能测试呢? 测试报告是一次完整性能测试的体现,所以,这里我给出一个完整的性能测试报告&#xff…

搞懂@DateTimeFormat 注解 和 对应的时间类型

通常而言,前端时间控件,一般情况下直接会传一个yyyy-MM-dd的日期字符串到后台。如果我们直接用java.util.Date类型来接收,是无法获取的。这是因为Date类型默认的格式为:Tue May 16 00:00:00 CST 2023这种。 举例 ApiOperation(val…

Games104现代游戏引擎学习笔记08

渲染那部分看的云里雾里的,等学完其他图形学的内容再回头开吧 游戏动画的三个挑战: 1.根据交互实时的反应各种变化 2.一帧时间里的庞大计算 3.更真实自然的表现 2D动画 sprite animation 把每一帧精灵循环绘制出来 2D技术实现3D效果 在各个视角采了一…

shell脚本——流编辑器“三剑客”之awk命令

shell脚本——流编辑器“三剑客”之awk命令 一、awk1、工作原理2、命令格式3、awk常见的内建变量(可直接用)4、按行输出文本5、按字段输出文本’:’6、通过管道、双引号调用shell命令 一、awk 1、工作原理 逐行读取文本,默认以空格或TAB键为…

射频放大器的原理和作用(射频放大器和功率放大器的区别)

射频放大器是一种电子电路,用于将输入信号增强到足够高的电平以驱动射频输出负载。其原理和作用如下: 射频放大器的工作原理是利用晶体管的三极管效应,将输入信号放大到足够的电平以驱动输出负载。在射频放大器中,输入信号经过输入…

深入理解 python 虚拟机:破解核心魔法——反序列化 pyc 文件

深入理解 python 虚拟机:破解核心魔法——反序列化 pyc 文件 在前面的文章当中我们详细的对于 pyc 文件的结构进行了分析,pyc 文件主要有下面的四个部分组成:魔术、 Bite Filed 、修改日期和 Code Object 组成。在前面的文章当中我们已经对前…