Linux中vi和vim的区别详解

文章目录

  • Linux中vi和vim的区别详解
    • 一、引言
    • 二、vi和vim的起源与发展
    • 三、功能和特性
      • 1、语法高亮
      • 2、显示行号
      • 3、编辑模式
      • 4、可视化界面
      • 5、功能扩展
      • 6、插件支持
    • 四、使用示例
      • 1、启动编辑器
      • 2、基本操作
    • 五、总结

Linux中vi和vim的区别详解

在这里插入图片描述

一、引言

在Linux系统中,vi和vim是两款非常流行的文本编辑器。vi是最早期的版本,而vim是vi的增强版,全称是“Vi IMproved”。本文将详细介绍vi和vim的区别,帮助用户根据自己的需求选择合适的编辑器。

二、vi和vim的起源与发展

vi最初由Bill Joy在1976年开发,是Unix系统上的一款文本编辑器。它是一个模式编辑器,具有命令模式、插入模式和可视模式三种主要模式。而vim由Bram Moolenaar在1991年发布,是vi的改进版本,添加了许多新功能和改进,如语法高亮、多级撤销、插件支持等。

三、功能和特性

1、语法高亮

  • vi:在默认设置下,vi不支持语法高亮,但可以通过插件和配置实现。
  • vim:vim支持丰富的语法高亮功能,并且默认情况下就启用了语法高亮。

2、显示行号

  • vi:默认情况下,vi不会显示行号,但可以通过设置显示行号。
  • vim:默认情况下,vim显示行号,如果需要隐藏行号,也可以在配置文件中进行设置。

3、编辑模式

vi和vim都具有命令模式、插入模式和底线模式,但vim还添加了可视模式和选择模式,可以进行更精细的文本选择和编辑。

4、可视化界面

  • vi:vi只能在终端中使用,没有图形化界面。
  • vim:vim不仅可以在终端中使用,还有一个图形化界面(gVim),在Windows下也可以使用。

5、功能扩展

vim是vi的改进版本,提供了更多的功能和命令,例如多级撤销、窗口分割、复制到剪贴板等,而vi功能相对简单,只实现了基本的文本编辑功能。

6、插件支持

  • vi:vi的插件系统相对简单,需要手动配置。
  • vim:vim有一个强大的插件系统(Vim Script),可以通过插件来扩展编辑器的功能,例如代码补全、文件浏览等。

四、使用示例

1、启动编辑器

启动vi编辑器的命令是:

vi filename

如果文件存在,vi将打开文件进行编辑;如果文件不存在,vi将创建新文件。

2、基本操作

在vi中,基本操作包括移动光标、删除文本、复制和粘贴等。例如:

  • 移动光标:h(左移),j(下移),k(上移),l(右移)。
  • 删除文本:x(删除光标处的字符),dd(删除整行)。
  • 复制和粘贴:yy(复制当前行),p(在光标后粘贴)。

五、总结

vi是一个简单、轻量的文本编辑器,在所有Unix和Linux系统中几乎都有预装。适合基本的文本编辑和在资源有限的环境中使用。vim是vi的增强版,具有丰富的功能,如语法高亮、插件支持、多文件编辑、分屏等,适合程序开发和复杂文本处理。对于Linux用户,尤其是程序员来说,vim是一个功能强大的工具。


版权声明:本博客内容为原创,转载请保留原文链接及作者信息。

参考文章

  • linux 下vi与vim区别以及vim的使用 - 百川汇海 - 博客园
  • Linux中的vi与vim:编辑器的王者之争与深度探索_vim和vi-CSDN博客

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

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

相关文章

信息安全管理——应急响应、灾备与恢复

安全管理 信息安全管理 信息安全管理是指通过维护信息的机密性、完整性和可用性来管理和保护信息资产,是对信息安全保障进行指导、规范和管理的一系列活 动和过程。 信息安全管理的意义在于他是组织或者公司管理体系的一个重要环节 ,比如说一所大学就是…

数据库数据恢复—ORACLE常见故障有哪些?如何恢复数据?

Oracle数据库常见故障表现: 1、ORACLE数据库无法启动或无法正常工作。 2、ORACLE ASM存储破坏。 3、ORACLE数据文件丢失。 4、ORACLE数据文件部分损坏。 5、ORACLE DUMP文件损坏。 Oracle数据库数据恢复方案: 1、检测存放数据库的服务器/存储设备是否存…

使用 WebStorm 导入已有的 Vue 项目并运行的步骤与注意事项

目录 1. 引言2. WebStorm 环境准备 2.1 安装 WebStorm2.2 配置 Node.js 和 npm2.3 使用 nvm 管理 Node.js 和 npm 版本2.4 npm 版本与 Vue 版本对应关系 3. 导入已有的 Vue 项目 3.1 打开 Vue 项目3.2 安装项目依赖3.3 使用 nvm 控制 Node.js 和 npm 版本 4. 运行 Vue 项目 4.…

C++感受15-Hello Object 封装版 -下(上机)

一步步(分解成九段小视频)带你完成“选美大赛海选报名程序”,从需求到设计再到实现,完整体验,同时边学边用以下知识点: 转换构造、复制构造、转发构造特定成员函数默认实现成员数据初始化列表成员数据默认值…

深入理解 JavaScript 中的 Array.find() 方法:原理、性能优势与实用案例详解

目录 深入理解 JavaScript 中的 Array.find() 方法:原理、性能优势与实用案例详解 一、引言:为什么要使用Array.find() 二、Array.find()的使用与技巧 1、基础语法 2、返回值 3、使用技巧 三、Array.find()的优势与实际应用案例 1、利用返回引用…

探索 LeNet-5:卷积神经网络的先驱与手写数字识别传奇

一、引言 在当今深度学习技术蓬勃发展的时代,各种复杂而强大的神经网络架构不断涌现,如 ResNet、VGG、Transformer 等,它们在图像识别、自然语言处理、语音识别等众多领域都取得了令人瞩目的成果。然而,当我们回顾深度学习的发展历…

希迪智驾持续亏损8.2亿:毛利率下滑,冲刺“自动驾驶矿卡第一股”

《港湾商业观察》黄懿 近日,希迪智驾(湖南)股份有限公司(下称“希迪智驾”)向港交所主板递交上市申请,联席保荐人为中金公司、中信建投国际、中国平安资本(香港)。 资料显示&#…

Vue 提供了Transition,可以帮助你制作基于状态变化的过渡和动画

官方文档&#xff1a;https://cn.vuejs.org/guide/built-ins/transition.html Transition​ Vue 提供了两个内置组件&#xff0c;可以帮助你制作基于状态变化的过渡和动画&#xff1a; <Transition> 会在一个元素或组件进入和离开 DOM 时应用动画。本章节会介绍如何使用…

Ansible自动化运维(三)playbook剧本详解

Ansible自动化运维这部分我将会分为五个部分来为大家讲解 &#xff08;一&#xff09;介绍、无密钥登录、安装部署、设置主机清单 &#xff08;二&#xff09;Ansible 中的 ad-hoc 模式 模块详解&#xff08;15&#xff09;个 &#xff08;三&#xff09;Playbook 模式详解 …

【汽车】-- 燃油发动机3缸和4缸

3缸和4缸燃油发动机是小轿车常见的发动机配置。以下从结构特点、性能、经济性等方面对两者进行对比&#xff0c;并分析优缺点及使用注意事项&#xff1a; 1. 结构与运行原理 3缸发动机 特点&#xff1a;少一个气缸&#xff0c;内部零部件更少&#xff0c;整体结构更紧凑。优点…

如何在x86模拟器和鸿蒙API9如何使用MQTT模块ohos_mqtt

目录 引言 安装失败的原因 如何编译so文件的x86_64版本 下载源代码 安装NDK 代码编译 安装MQTT软件包 避免MQTT软件包自动升级 设置libs 客户端程序的编写 运行测试 结语 参考文献 引言 在上周的博客&#xff08;如何在鸿蒙API9和x86模拟器中使用MQTT-CSDN博客&am…

若依集成更好用的easyexcel

背景 若依使用的是apach poi并在此基础上进行封装apach poi的原生的api是很复杂的&#xff0c;若依简化了了此操作apach poi的上传速率和下载速率都是没有优化的&#xff0c;依赖于文件大小的限制在此前提下&#xff0c;如果没法满足客户的需求&#xff08;超大型文件的上传&am…

我们来学mysql -- 探讨win安装方式(安装篇)

题记 书接上回&#xff0c;在我们来学mysql – 闲聊(安装篇)中&#xff0c;拿到安装包&#xff0c;当宝贝一样揣在怀里 然而&#xff0c;还没捂热乎&#xff0c;得粉丝秘报&#xff0c;U哥&#xff0c;上篇文章用了滞后的官方文档&#xff0c;哈哈哈…内心的小倔强&#xff0c…

[WiFi] WiFi安全加密WEP Vs WPA Vs WPA2 Vs WPA3整理

WiFi安全标准时间线 WEP&#xff08;Wired Equivalent Privacy&#xff09; WEP最早于1997年推出&#xff0c;是为了保护无线网络上的数据通信而设计的。当时&#xff0c;Wi-Fi技术还处于起步阶段&#xff0c;人们开始意识到需要一种安全协议来防止未经授权的访问和窃听。WEP被…

05 在 Linux 使用 AXI DMA

DMA简介 DMA 是一种采用硬件实现存储器与存储器之间或存储器与外设之间直接进行高速数据传输的技术&#xff0c;传输过程无需 CPU 参与&#xff08;但是CPU需要提前配置传输规则&#xff09;&#xff0c;可以大大减轻 CPU 的负担。 DMA 存储传输的过程如下&#xff1a; CPU 向…

深入解析下oracle的number底层存储格式

oracle数据库中&#xff0c;number数据类型用来存储数值数据&#xff0c;它既可以存储负数数值&#xff0c;也可以存储正数数值。相对于其他类型数据&#xff0c;number格式的数据底层存储格式要复杂得多。今天我们就详细探究下oracle的number底层存储格式。 一、环境搭建 1.…

多速率信号处理

介绍 简单来说&#xff0c; 多速率信号处理&#xff0c;是指对同时存在两个以上数据速率的系统进行信号处理。多速率信号处理原理就是通过改变信号速率&#xff0c;以适应系统内部各个节点对信号速率的要求。这里的速率其实就是指采样率。 多速率技术已广泛应用于数字音频处理…

golang实现简单的redis服务

golang 手搓redis服务器仓库地址:实现思路: golang 手搓redis服务器 仓库地址: 仓库: https://github.com/dengjiayue/my-redis.git 实现思路: ● 协议: tcp通信 ● 数据包: 长度(4byte)方法(1byte)数据json ● 数据处理: 单线程map读写 ○ 依次处理待处理队列的请求(chan)…

ssd202d-badblock-坏块检测

这边文章讲述的是坏快检测功能 思路: 1.第一次烧录固件会实现跳坏块,但是后续使用会导致坏块的产生; 于是我在uboot环境变量添加了两个变量来控制坏快 lb_badnum = //坏块个数 lb_badoff = //坏块所在位置 2.第一次开机会根据lb_badnum是否存在判断,如果不存在则保存上…

Y3编辑器文档2:场景编辑

文章目录 一、操作区二、地图设置2.1 地图大小2.2 其它选项三、地形编辑3.1 地势3.2 地形3.3 通行(碰撞、通行和视野规则)3.4 植被四、物件放置4.1 单位4.1.1 单位的摆放与调整4.1.2 状态栏属性编辑4.2 装饰物摆放4.3 物品4.4 镜头4.4.1 镜头的基本参数4.4.2 镜头时间轴动画4…