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博客
相关文章:

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

2021 年 6 月青少年软编等考 C 语言四级真题解析
目录 T1. 数字三角形问题思路分析T2. 大盗思路分析T3. 最大子矩阵思路分析T4. 小球放盒子思路分析T1. 数字三角形问题 上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。 注…...

UE5编辑器下将RenderTarget输出为UTexture并保存
在使用UE5开发项目时,RenderTarget是一种非常强大的工具,常用于生成实时纹理效果、后处理和调试。而将RenderTarget的内容转换为UTexture并储存,是许多编辑器内的需求都需要的功能。 1.材质球输出至Texture 首先创建一个Actor类,…...

【漏洞复现】CVE-2024-34102 Magento Open Source XXE漏洞
目录 漏洞介绍 影响版本 环境搭建 查看版本 漏洞复现 手动复现 漏洞 poc Magento Open Source 是一个免费开源的电子商务平台,适合中小企业或开发团队通过自定义代码和插件创建在线商店。它由社区开发和支持,功能强大但需要更多的技术投入。Adobe…...
soul大数据面试题及参考答案
如何看待数据仓库? 数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。 从数据存储角度看,它整合了来自多个数据源的数据。这些数据源可能包括业务系统数据库、日志文件等各种结构化和非结构化数据。例如,在电商企业中,它会整合订…...

GLM-4-Plus初体验
引言:为什么高效的内容创作如此重要? 在当前竞争激烈的市场环境中,内容创作已成为品牌成功的重要支柱。无论是撰写营销文案、博客文章、社交媒体帖子,还是制作广告,优质的内容不仅能够帮助品牌吸引目标受众的注意力&a…...

基于springboot+vue的高校校园交友交流平台设计和实现
文章目录 系统功能部分实现截图 前台模块实现管理员模块实现 项目相关文件架构设计 MVC的设计模式基于B/S的架构技术栈 具体功能模块设计系统需求分析 可行性分析 系统测试为什么我? 关于我项目开发案例我自己的网站 源码获取: 系统功能 校园交友平台…...

Nacos 3.0 Alpha 发布,在安全、泛用、云原生更进一步
自 2021 年发布以来,Nacos 2.0 在社区的支持下已走过近三年,期间取得了诸多成就。在高性能与易扩展性方面,Nacos 2.0 取得了显著进展,同时在易用性和安全性上也不断提升。想了解更多详细信息,欢迎阅读我们之前发布的回…...

【前端开发】HTML+CSS网页,可以拿来当作业(免费开源)
HTML代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content_lizhongyu"widthdevice-width, initial-scale1.0"><title>小兔鲜儿-新鲜、惠民、快捷<…...
【人工智能-中级】卷积神经网络(CNN)的中阶应用:从图像分类到目标检测
文章目录 卷积神经网络(CNN)的中阶应用:从图像分类到目标检测1. 图像分类:CNN的基础应用CNN结构概述经典网络架构2. 目标检测:从分类到定位基于区域的目标检测方法单阶段目标检测方法边界框回归与NMS(Non-Maximum Suppression)3. 深度学习中的目标检测挑战与解决方案4. …...

[笔记] 编译LetMeowIn(C++汇编联编程序)过程
文章目录 前言过程下载源码vs2017 创建空项目 引入编译文件改项目依赖属性改汇编编译属性该项目还需注意编译运行 总结 前言 编译LetMeowin 项目发现是个混编项目,c调用汇编的程序,需要配置一下,特此记录一下 过程 下载源码 首先下载源码…...
牛客小白月赛107(A~E)
文章目录 A Cidoai的吃饭思路code B Cidoai的听歌思路code C Cidoai的植物思路code D Cidoai的猫猫思路code E Cidoai的可乐思路code 牛客小白月赛107 A Cidoai的吃饭 思路 签到题,按题意模拟即可 code void solve(){int n,a,b,c;cin >> n >> a &g…...

批量DWG文件转换低版本(CAD图转低版本)——c#插件实现
此插件可实现指定路径下所有dwg文件(包含子文件夹内dwg)一键全部转为低版本(包含2004、2007、2018版本,也可定制指定版本)。效果如下: (使用方法:命令行输入 “netload” 加载插件&…...
安装Python库
安装Python库 一、pip安装参数--no-deps 更换下载源,一劳永逸 二、conda下载 一、pip安装 换源安装并且信任该下载源 pip install pipenv -i http://pypi.douban.com/simple --trusted-host pypi.douban.com参数 –no-deps 有些 packages 会依赖一些其它的 p…...

智慧政务数据中台建设及运营解决方案
数据中台:政府数字化转型的引擎 数据中台作为政府数字化转型的核心驱动力,起源于美军的作战体系,强调高效、灵活与强大。它不仅促进了政府决策的科学性,还推动了政府服务的精细化与智能化。 数据中台的应用场景:数字…...

陪玩系统小程序源码/游戏陪玩APP系统用户端有哪些功能?游戏陪玩小程序APP源码开发
多客陪玩系统-游戏陪玩线下预约上门服务等陪玩圈子陪玩社区系统源码 陪玩系统源码,高质量的陪玩系统源码,游戏陪玩APP源码开发,语音陪玩源码搭建: 线上陪玩活动组局与线下家政服务系统的部署需要综合考虑技术选型、开发流程、部署流程、功能实…...
米哈游大数据面试题及参考答案
怎么判断两个链表是否相交?怎么优化? 判断两个链表是否相交可以采用多种方法。 一种方法是使用双指针。首先分别遍历两个链表,得到两个链表的长度。然后让长链表的指针先走两个链表长度差的步数。之后,同时移动两个链表的指针,每次比较两个指针是否指向相同的节点。如果指…...
使用Hydra库简化配置管理
使用Hydra库简化配置管理 简介 在现代软件开发中,配置管理是至关重要的。应用程序的灵活性和可维护性很大程度上取决于其如何处理配置。Hydra是一个由Facebook AI Research (FAIR) 开发的Python库,它旨在简化复杂应用的配置过程。Hydra使得开发者可以轻…...
二维数组和函数
文章目录 1、课程代码 #include <bits/stdc.h> using namespace std;//定义函数 /*函数名的命名规则和变量是一致的 函数的返回值数据类型 函数名(形式参数){函数体 } */ //自己写乘方pow这个函数 pow(2,3) int p(int a,int b); int p(int a,int b){int s1;for(i…...
如何在 Ubuntu 终端中打开当前文件夹的图形界面
文章目录 1. 简介2. 方法一:使用 Nautilus 文件管理器3. 方法二:使用通用命令 xdg-open4. 方法三:使用其他文件管理器5. 推荐方案6. 参考资料 1. 简介 在日常使用 Linux 系统时,我们常常会在终端中执行各种操作。有时,…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...