Vi 编辑器基本使用指南

news/2025/2/25 8:09:17

一、Vi 编辑器的启动与退出

启动 Vi 编辑器

在终端中,输入vi加上要编辑的文件名,如vi example.txt,如果example.txt存在,Vi 编辑器会打开该文件;若不存在,则会创建一个新的空文件并打开。如果只输入vi,则会进入一个空白的编辑界面,之后可以通过保存操作指定文件名。

退出 Vi 编辑器

Vi 编辑器有多种退出方式,取决于编辑状态。

  • 未修改文件时:在命令模式下,输入:q,即可直接退出。
  • 修改文件且要保存时:在命令模式下,输入:wq,w表示保存(write),q表示退出(quit),这样会保存修改并退出。
  • 修改文件但不想保存时:在命令模式下,输入:q!,!表示强制执行,即不保存修改并退出。

二、Vi 编辑器的三种模式

命令模式

当启动 Vi 编辑器后,默认进入的就是命令模式。在命令模式下,可以使用各种命令来控制光标移动、进行文本删除、复制、粘贴等操作。

  • 光标移动:除了使用方向键,还可以使用h(左)、j(下)、k(上)、l(右)来移动光标。例如,按下k键,光标会向上移动一行。
  • 文本删除:x键用于删除光标所在位置的字符;dd用于删除光标所在的整行。若要删除从光标所在位置开始的 5 个字符,可输入5x;删除从光标所在行开始的 3 行,输入3dd。
  • 复制粘贴:yy用于复制当前行,nyy则可以复制从当前行开始的n行,如3yy复制当前行及下面两行。复制后,使用p命令将内容粘贴到光标所在位置的下一行,P(大写)则粘贴到上一行。

输入模式

在命令模式下,通过特定按键进入输入模式,才能进行文本的输入。

  • 在光标前插入:按下i键,进入输入模式,此时可以在光标当前位置前插入文本。
  • 在光标后插入:按下a键,在光标当前位置后插入文本。
  • 在新行插入:按下o键,在当前行的下一行插入新的一行,并进入输入模式;按下O(大写)键,则在当前行的上一行插入新行。

要从输入模式回到命令模式,只需按下Esc键。

末行模式

在命令模式下,按下:键进入末行模式,此时光标会移动到屏幕的最后一行,等待输入命令。

  • 文件保存:输入:w,即可将当前编辑的内容保存到文件中。若要将文件另存为其他名称,输入:w newfile.txt。
  • 查找文本:输入/关键字,如/hello,可在文件中查找 “hello” 这个关键字,按n键查找下一个匹配项,按N键查找上一个匹配项。
  • 替换文本:使用:%s/旧内容/新内容/g命令进行全局替换,如:%s/linux/Linux/g,将文件中所有的 “linux” 替换为 “Linux”。若只想替换当前行的第一个匹配项,使用:s/旧内容/新内容/即可。

三、实用技巧与注意事项

  • 撤销与重做:在命令模式下,u键用于撤销上一步操作,连续按u可以撤销多步;Ctrl + r用于重做被撤销的操作。
  • 快速定位:在命令模式下,输入数字 + G,可以快速跳转到指定行,如10G跳转到第 10 行;输入G,直接跳转到文件末尾;输入gg,回到文件开头。
  • 注意模式切换:在使用 Vi 编辑器时,务必清楚当前处于哪种模式,因为不同模式下的操作和按键功能不同。例如,在输入模式下输入的字符会直接显示在文本中,而在命令模式下则会被识别为命令。

http://www.niftyadmin.cn/n/5865234.html

相关文章

Linux学习笔记之文件

1.文件 1.1文件属性 当我们创建文件时,文件就有了对应的属性,可以用mkdir创建目录,touch创建普通文件。用ls -al查看文件属性。 从上图可以看出目录或者文件的所有者,所属组,其他人权限,创建时间等信息。由…

前端防重复请求终极方案:从Loading地狱到精准拦截的架构升级

🔥 事故现场还原:疯狂点击引发的血案 凌晨1点23分,监控系统突然告警: 📉 服务器CPU飙升至98% 🗃️ 数据库出现3000脏数据 💥 用户端弹出上百个错误弹窗 事故原因:黑产脚本通过0.5秒…

科普:HTTP端口80和HTTPS端口443

你会发现,有的网址不带端口号,怎么回事? HTTP协议默认端口:HTTP协议的默认端口是80。当用户在浏览器中输入一个没有指定端口的以http://开头的网址时,浏览器会自动使用80端口与服务器建立连接,进行超文本数…

【linux】文件与目录命令 - awk

文章目录 1. 基本用法2. 常用参数3. 用法举例4. 注意事项 awk 是一款强大的文本处理工具,用于逐行读取文件,根据指定规则对每行内容进行格式化处理和分析。它支持复杂的逻辑运算、正则表达式和条件控制。 1. 基本用法 语法: awk [选项] 脚本 …

【LeetCode 热题100】48. 旋转图像以及旋转任意角度的算法思路及python代码

48. 旋转图像 给定一个 n n n n nn 的二维矩阵 m a t r i x matrix matrix 表示一个图像。请你将图像顺时针旋转 90 90 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1: 输入&…

【C++设计模式】 单例设计模式:重要常用却并非完美之选

引言 设计模式在软件开发中扮演着至关重要的角色,然而,没有一种设计模式是完美无缺的,单例设计模式便是其中之一。它一直以来都备受争议,有人认为它是解决特定问题的有效方案,也有人觉得它存在诸多弊端。在实际应用中…

第5章 软件工程(一)

5.1 软件工程定义 软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程,其目的是提高软件生产率、 提高软件质量、降低软件成本。 5.2 软件需求 软件需求是指用户对系统在功能、行为、性能、设计约束等方面的…

玩转Docker | 使用Docker搭建Vikunja任务管理应用

玩转Docker | 使用Docker搭建Vikunja任务管理应用 前言一、 Vikunja介绍Vikunja 简介主要特点二、系统要求环境要求环境检查Docker版本检查检查操作系统版本三、部署Vikunja服务下载镜像创建容器检查容器状态检查服务端口安全设置四、访问Vikunja应用注册账号访问Vikunja主页五…