vi/vim编辑器

在这里插入图片描述

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.hqwc.cn/news/109509.html

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

相关文章

Python二级 每周练习题18

练习一: 从键盘输入任意字符串&#xff0c;按照下面要求分离字符串中的字符: 1、分别取出该字符串的第偶数位的元素(提醒注意:是按照从左往右数的方式确定字符串的位置) 2、并依次存储到一个列表中; 3、输出这个列表。 答案: ninput(请输入任意字符串:) #创建变量n存放用户…

TGA格式文件转材质

今天淘宝上买了一个美女的模型&#xff0c;是blender的源文件&#xff0c;上面说有fbx格式的。我用unity&#xff0c;所以觉得应该可以用。文件内容如下图&#xff1a; FBX文件夹打开后&#xff0c;内容如下图所示&#xff0c;当时就预感到可能没有色彩。 unity打开后果然发现只…

vue3+scss开启写轮眼

vue3scss开启写轮眼 一、相关技术二、使用步骤1.安装依赖2.眼球3 勾玉4 旋转动画5 综合 一、相关技术 采用vue3vitescss的技术内容进行开发 二、使用步骤 1.安装依赖 代码如下&#xff1a; npm install sass2.眼球 首先我们根据需要 将眼睛的基础形状描绘出来&#xff0c…

Java-day14(多线程)

多线程 0.基本概念 程序&#xff1a;为完成特定任务&#xff0c;用某种编程语言编写的一组指令的集合&#xff08;静态&#xff09; 进程&#xff1a;程序的一次执行过程&#xff0c;或正在执行的一个程序&#xff08;动态过程&#xff09; 线程&#xff1a;程序内部的一条…

CSS文字居中对齐学习

CSS使用text-align属性设置文字对齐方式&#xff1b;text-align:center&#xff0c;这样就设置了文字居中对齐&#xff1b; <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>css 水平居中</title><style>.box …

Truenas scale 初始化设置

Truenas 安装 官网下载镜像Rufu刻录镜像实体机安装 参考 司波图YouTube, 张先生的深夜课堂&#xff0c; 小曾和他的朋友们 。 设置 设置时区 System setting -> General -> Localization 设置固定路由器IP Network -> Interface 中点击已经获取到路由器分配的 I…

Java版企业电子招标采购系统源码—企业战略布局下的采购寻源

功能模块&#xff1a; 待办消息&#xff0c;招标公告&#xff0c;中标公告&#xff0c;信息发布 描述&#xff1a; 全过程数字化采购管理&#xff0c;打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力&#xff0c;为外部供…

计算机专业毕业设计项目推荐06-工作室管理系统(Java+Vue+Mysql)

工作室管理系统&#xff08;JavaSpringVueMysql&#xff09; **介绍****系统总体开发情况-功能模块****各部分模块实现****最后想说的****联系方式** 介绍 本系列(后期可能博主会统一为专栏)博文献给即将毕业的计算机专业同学们,因为博主自身本科和硕士也是科班出生,所以也比较…

D3JS简介

D3JS 什么是D3js D3.js是一个流行的JavaScript数据可视化库&#xff0c;它提供了一系列的API和工具&#xff0c;用于创建交互式的数据图表、地图等可视化效果。以下是一些D3.js的特点和用途&#xff1a; 数据驱动&#xff1a;D3.js基于数据驱动的思想&#xff0c;将数据和视觉…

JavaSE、JavaEE与Spring的概念和异同点剖析以及规范13 个分析

JavaSE、JavaEE与Spring的概念和异同点剖析以及规范13 个分析 目录概述需求&#xff1a; 设计思路实现思路分析1.什么是JavaSE2.是JavaEE3.什么是Spring 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&…

uniapp打包微信小程序。报错:https://api.weixin.qq.com 不在以下 request 合法域名列表

场景&#xff1a;在进行打包上传测试时&#xff0c;发现登录失效&#xff0c;但在测试中【勾选不效应合法域名】就可以。 出现原因&#xff1a;我在获取到用户code后&#xff0c;直接使用调用官方接口换取openid 解决方案&#xff1a; 可以把code带给后端&#xff0c;让他们返…

java word文档 转 html文件

用java将word转为html文档 1、简介2、添加依赖3、代码示例 1、简介 最近&#xff0c;因项目需要&#xff0c;需要对word文档进行解析拆分&#xff0c;感觉直接解析word有点麻烦&#xff0c;于是想到&#xff0c;先将word转为html文档&#xff0c;然后用jsoup解析html文件更方便…