当前位置: 首页 > news >正文

Vi 编辑器基本使用指南

一、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.lryc.cn/news/542248.html

相关文章:

  • 22、《Spring Boot消息队列:RabbitMQ延迟队列与死信队列深度解析》
  • linux 命令+相关配置记录(持续更新...)
  • ssh工具
  • LLM大语言模型私有化部署-使用Dify的工作流编排打造专属AI诗词数据分析师
  • Windows 图形显示驱动开发-WDDM 3.2-自动显示切换(二)
  • 基于CentOS7安装kubesphere和Kubernetes并接入外部ES收集日志
  • 软考教材重点内容 信息安全工程师 第17章 网络安全应急响应技术原理与应用
  • 使用 DeepSeek + OmniParser v2 + UIAutomation 实现 GUI 应用自动化测试的探索
  • Spring Security面试题
  • 从零开始构建基于DeepSeek的智能客服系统
  • Linux故障排查和性能优化面试题及参考答案
  • 【无人集群系列---大疆无人集群技术进展、技术路线与未来发展方向】
  • 【亲测有效】百度Ueditor富文本编辑器添加插入视频、视频不显示、和插入视频后二次编辑视频标签不显示,显示成img标签,二次保存视频被替换问题,解决方案
  • ubuntu windows双系统踩坑
  • 嵌入式八股文(五)硬件电路篇
  • flink使用demo
  • OpenCV(8):图像直方图
  • 力扣LeetCode:1656 设计有序流
  • NGINX配置TCP负载均衡
  • vm和centos
  • c#丰田PLC ToyoPuc TCP协议快速读写 to c# Toyota PLC ToyoPuc读写
  • 量子计算的数学基础:复数、矩阵和线性代数
  • 【JavaScript】《JavaScript高级程序设计 (第4版) 》笔记-Chapter22-处理 XML
  • 一个不错的API测试框架——Karate
  • 文字语音相互转换
  • DeepSeek-R1:通过强化学习激发大语言模型的推理能力
  • MATLAB中fft函数用法
  • 【SpringBoot】【JWT】使用JWT的claims()方法存入Integer类型数据自动转为Double类型
  • Crack SmartGit
  • 【备赛】在keil5里面创建新文件的方法+添加lcd驱动