vi/vim编辑器

news2024/9/24 1:21:01

在这里插入图片描述

vi和vim区别

vivim 是常见的文本编辑器,以下是它们之间的区别:

  1. 功能和特性:

    • vi 是最早的版本,是在早期Unix系统中广泛使用的编辑器。vi 相对较简单,功能主要集中在基本的文本编辑操作上,如插入、删除、查找、替换等。它没有语法高亮、分屏编辑等一些现代编辑器常见的功能。
    • vim(Vi IMproved)是 vi 的增强版本,它保留了 vi 的基本功能,同时添加了大量的高级特性和扩展。vim 支持语法高亮、代码折叠、多窗口编辑、多级撤销、宏录制等,还有许多插件和定制选项可用。
  2. 用户界面:

    • vivim 都使用基于文本终端的字符界面。它们没有图形界面,而是在终端中使用命令和键盘快捷键来操作和编辑文本。
  3. 兼容性:

    • vi 通常是系统默认的编辑器,可以在几乎所有类Unix系统中使用,包括 Linux 和 macOS。
    • vim 是对 vi 的增强,并且是一个独立的项目。它也可以在类Unix系统中使用,并且可以在各种平台上进行编译和安装,如 Linux、macOS、Windows 等。因此,vim 是更广泛使用的版本。

总结来说,vi 是最初的版本,相对简单,并且几乎在所有类Unix系统中可用。而 vimvi 的增强版本,提供更多功能和特性,是更强大和广泛使用的文本编辑器。对于大多数用户来说,vim 是更好的选择,尤其是对于需要更复杂编辑任务的开发者和程序员。

vi和vim三种模式

三种模式转换

vivim 都具有三种基本模式,它们是普通模式(Normal Mode),插入模式(Insert Mode)和命令行模式(Command-Line Mode)。这些模式之间的切换如下:

  1. 普通模式(Normal Mode):这是 vivim 的默认模式,用于移动光标、复制、粘贴、删除等编辑操作。

    • 从插入模式(Insert Mode)切换到普通模式:按下 Esc 键。
    • 从命令行模式(Command-Line Mode)切换到普通模式:按下 Esc 键。
  2. 插入模式(Insert Mode):在这个模式下,你可以输入和编辑文本。

    • 从普通模式切换到插入模式:按下 i 键。这将光标放置在当前位置,以便开始在光标后插入文本。
    • 从普通模式切换到插入模式并在行首插入:按下 I 键。
    • 从普通模式切换到插入模式并在下一行插入:按下 o 键。
  3. 命令行模式(Command-Line Mode):在这个模式下,你可以执行一些编辑器的命令和操作。

    • 从普通模式切换到命令行模式:按下 :(冒号)键。
    • 从插入模式切换到命令行模式:按下 Esc 键,然后按下 :(冒号)键。

在命令行模式下,你可以输入各种命令,如保存文件、退出编辑器、查找替换等。例如:

  • 保存文件:在命令行模式下输入 :w,然后按下回车。
  • 退出编辑器:在命令行模式下输入 :q,然后按下回车。
  • 同时保存并退出:在命令行模式下输入 :wq,然后按下回车。

要注意,在 vim 中,还有一个可视模式(Visual Mode),用于高亮选择文本块。你可以使用 v 键从普通模式切换到可视模式。

通过合理的切换和使用这些模式,可以更高效地进行文本编辑和操作。

普通模式快捷键

当然,以下是普通模式下常用的一些快捷键列表:

  1. 光标移动:

    • h:左移一个字符。
    • j:下移一行。
    • k:上移一行。
    • l:右移一个字符。
    • 0:移动到行首。
    • ^:移动到行首第一个非空字符。
    • $:移动到行尾。
    • gg:移动到文档开头。
    • G:移动到文档末尾。
    • w:向前移动到下一个单词的开头。
    • b:向后移动到上一个单词的开头。
    • %:在括号之间进行跳转。
  2. 文本编辑:

    • i:在当前光标位置之前插入文本。
    • a:在当前光标位置之后插入文本。
    • o:在当前行之后打开新行并进入插入模式。
    • O:在当前行之前打开新行并进入插入模式。
    • x:删除光标处的字符。
    • r:替换光标处的字符。
    • u:撤销上一次操作。
    • Ctrl+r:恢复上一次被撤销的操作。
  3. 复制粘贴与删除:

    • yy:复制当前行。
    • dd:删除当前行。
    • p:粘贴剪贴板内容到光标后。
    • P:粘贴剪贴板内容到光标前。
    • yw:复制从光标处到单词结尾的字符。
    • y$:复制从光标处到行尾的字符。
    • dw:删除从光标处到下一个单词开头的字符。
    • d$:删除从光标处到行尾的字符。
    • x:删除光标处的字符。
  4. 查找与替换:

    • /keyword:向前查找关键字。
    • ?keyword:向后查找关键字。
    • n:跳转到下一个匹配项。
    • N:跳转到上一个匹配项。
    • :s/old/new:替换当前行第一个匹配项。
    • :s/old/new/g:替换当前行所有匹配项。
    • :%s/old/new/g:替换整个文档中的所有匹配项。

命令行模式快捷键

  • :w:保存当前文档。
  • :w <filename>:另存为指定的文件名。
  • :r <filename>:读取指定文件名的文档插入到当前位置。
  • :q :退出编辑器,前提是文档未做任何修改。
  • :q!:不保存修改直接退出编辑器。
  • :wq:保存修改并退出编辑器。
  • :set nu:在行首显示行号。
  • :set nonu:不显示行号。
  • :set hlsearch:设置搜索结果高亮显示。
  • !command:回到终端窗口,执行command命令,按回车键可切回vim。

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

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

相关文章

MyBatis: 配置文件解析流程

XmlConfigurationBuilder类来解析配置文件。 调用了build方法&#xff0c;其代码如下&#xff1a; 其中通过parse方法返回一个Configuration对象&#xff0c;在传递给build方法。 parse方法代码如下&#xff1a; 其中调用了parseConfiguration方法&#xff0c; 可以看到其中…

hive 静态分区与动态分区(笔记)

目录 前言&#xff1a; 静态分区&#xff1a; 1.创建分区 2.删除分区 3.在分区中插入数据 4.查看分区表数据 动态分区 &#xff1a; 2.查看v表源数据 3.以emp_name为动态字段数据抽取到employee表 总结 前言&#xff1a; Hive中的分区就是把一张大表的数据按照业务需要…

华为云云耀云服务器L实例评测|华为云上安装监控服务Prometheus三件套安装

文章目录 华为云云耀云服务器L实例评测&#xff5c;华为云上试用监控服务Prometheus一、监控服务Prometheus三件套介绍二、华为云主机准备三、Prometheus安装四、Grafana安装五、alertmanager安装六、三个服务的启停管理1. Prometheus、Alertmanager 和 Grafana 启动顺序2. 使用…

ChatGPT与日本首相交流核废水事件-精准Prompt...

了解更多请点击&#xff1a;ChatGPT与日本首相交流核废水事件-精准Prompt...https://mp.weixin.qq.com/s?__bizMzg2NDY3NjY5NA&mid2247490070&idx1&snebdc608acd419bb3e71ca46acee04890&chksmce64e42ff9136d39743d16059e2c9509cc799a7b15e8f4d4f71caa25968554…

UG时的弹出框:提示没有可用许可证,No such feature exists(-5),

当过多用户使用UG时或UG优化失效时会出现此弹出框。如果该问题发生时&#xff0c;需立即联系管理员&#xff0c;查看许可管理平台&#xff0c;该服务器许可是否占满&#xff0c;如果占满&#xff0c;联系武汉格发管理员&#xff0c;请准备好服务器远程&#xff0c;可以及时查看…

NLP(5)--自编码器

目录 一、自编码器 1、自编码器概述 2、降噪自编码器 二、特征分离 三、自编码器的其他应用 1、文本生成 2、图像压缩 3、异常检测 四、VAE 1、极大似然估计 2、GSM 3、GMM 4、VAE的引出 5、VAE 一、自编码器 1、自编码器概述 自编码器&#xff08;Auto-Encode…

【高阶数据结构】AVL树(C++实现)

⭐博客主页&#xff1a;️CS semi主页 ⭐欢迎关注&#xff1a;点赞收藏留言 ⭐系列专栏&#xff1a;C进阶 ⭐代码仓库&#xff1a;C进阶 家人们更新不易&#xff0c;你们的点赞和关注对我而言十分重要&#xff0c;友友们麻烦多多点赞&#xff0b;关注&#xff0c;你们的支持是我…

如何将一个字符串转换为驼峰命名法(camel case)?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 思路⭐ 示例⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领…

ODrive移植keil(三)—— USB虚拟串口和快速正弦余弦运算

目录 一、USB虚拟串口1.1、硬件连接1.2、代码移植1.3、测试1.4、最终代码 二、快速正弦余弦运算2.1、硬件连接2.2、代码移植2.3、测试2.4、结论 三、软件中断3.1、配置中断3.2、官方代码的使用方式 ODrive、VESC和SimpleFOC 教程链接汇总&#xff1a;请点击 一、USB虚拟串口 单…

Pdf文件签名检查

如何检查pdf的签名 首先这里有一个已经签名的pdf文件&#xff0c;通过pdf软件可以看到文件的数字签名。 下面就是如何代码检查这里pdf文件的签名 1.引入依赖 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId&g…

彩色相机工作原理——bayer格式理解

早期&#xff0c;图像传感器只能记录光的强弱&#xff0c;无法记录光的颜色&#xff0c;所以只能拍摄黑白照片。 1974年,拜尔提出了bayer阵列&#xff0c;发明了bayer格式图片。不同于高成本的三个图像传感器方案&#xff0c;拜尔提出只用一个图像传感器&#xff0c;在其前面放…

【进阶C语言】数据在内存中的存储

一、数据类型的介绍 1.整形家族 &#xff08;1&#xff09;char--字符型 单位&#xff1a;一个字节&#xff0c;包括unsigned char和signed char (2)short--短整形 单位&#xff1a;两个字节&#xff0c;包括unsigned short[int]和signed short[int] (3)int--整形 单位&…

水果店如何通过小程序商城完成配送路径

水果店线上发展的主要目标就是销售卖货&#xff0c;随着电商经济发展&#xff0c;传统线下店面临不少困境&#xff0c;线上部分商家会选择进驻到电商平台及外卖平台&#xff0c;但收获流量的同时也有高昂的流量费、抽成等成本的支出&#xff0c;难以外部宣传及内部打通流程、较…

电脑工具远程定时任务关机开机

使用方法 定时跟远程是两回事情不要搞混了 定时 不需要 扫码登录 直接就可以 软件设置 时间 到规定时间 就自动关机 远程操作 关机 锁屏 只要扫码登录软件挂后台就可以远程操作了 用自己手机微信扫码登录 后发送&#xff08;口令&#xff09;到文件传输助手 就可以看到口令…

电子技术基础(三)__第1章电路分析基础_第13篇__正弦交流电的相量表示

本文讲解 正弦交流电的稳态分析————正弦量的相量表示 一 基本概念 接下来&#xff0c; 注意: 大写字母 上 加点 表示相量 例如&#xff1a; 因为这里有 I m I_{m} Im​ 是幅值&#xff0c; 所以此相量称为幅值相量。 相量 其实就是一个复数&#xff0c; 表示正弦量的复…

小鹏:交出最差的财报,展现最膨胀的信心

上市三年&#xff0c;小鹏在今年第二季度交出了几乎是史上最差的财报&#xff0c;多项惨烈的数据叠加在一起&#xff0c;远远望去&#xff0c;就像一张病危通知单。 自2020年上市后&#xff0c;小鹏的扩张速度令资本惊叹&#xff0c;截至2023年6月30日&#xff0c;小鹏的门店数…

IntelliJ IDEA使用_Debug操作

文章目录 版本说明图标和快捷键查看变量计算表达式条件断点多线程调试 版本说明 当前的IntelliJ IDEA 的版本是2021.2.2&#xff08;下载IntelliJ IDEA&#xff09; ps&#xff1a;不同版本一些图标和设置位置可能会存在差异&#xff0c;但应该大部分都差不多。 图标和快捷键…

APP自动化之weditor工具

由于最近事情颇多&#xff0c;许久未更新文章。大家在做APP自动化测试过程中&#xff0c;可能使用的是Appium官方提供的inspect进行元素定位&#xff0c;但此工具调试不方便&#xff0c;于是今天给大家分享一款更好用的APP定位元素工具&#xff1a;weditor weditor基于web网页…

前端请求接口地址反向代理后 状态码404、反向代理注意事项

目录 1. 反向代理代码&#xff08;有问题&#xff09;问题 2. 问题排查原因【排查步骤】【问题1】产生原因【问题2】产生原因【附&#xff1a;排查代码】 3. 总结 - 解决代码4. 总结 - 反向代理 1. 反向代理代码&#xff08;有问题&#xff09; 接口封装 export function Get…

JenniAI:基于AI的文章生成器写作助手

【产品介绍】 • 名称 JenniAI • 成立/上线时间 2022年 • 具体描述 Jenni AI是一个基于AI的文章写作助手&#xff0c;通过使用先进的人工智能技术帮助用户更快、更好、更有创意地写作。无论用户需要写一篇论文、一篇博客、一封邮件、…