当前位置: 首页 > 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 编辑器时,务必清楚当前处于哪种模式,因为不同模式下的操作和按键功能不同。例如,在输入模式下输入的字符会直接显示在文本中,而在命令模式下则会被识别为命令。

相关文章:

  • DeepSeek引领目标检测新趋势:如何通过知识蒸馏优化模型性能
  • DroidDissector本地部署
  • [实现Rpc] 客户端 | Requestor | RpcCaller的设计实现
  • 【DeepSeek-R1背后的技术】系列十一:RAG原理介绍和本地部署(DeepSeekR1+RAGFlow构建个人知识库)
  • MapTRv2 论文学习
  • [分披萨]
  • 让网页“浪“起来:打造会呼吸的波浪背景
  • 性能巅峰对决:Rust vs C++ —— 速度、安全与权衡的艺术
  • vue语法v-model例子单选题和多选题
  • 【每日德语】Reise — 旅行
  • 湖北中医药大学谱度众合(武汉)生命科技有限公司研究生工作站揭牌
  • vue2项目中初始化mapbox组件
  • 免费 MLOps 课程:学习机器学习运维的完整流程
  • 玩转Docker | 使用Docker搭建Vikunja任务管理应用
  • 浏览器JS打不上断点,一点就跳到其他文件里。浏览器控制台 js打断点,指定的位置打不上断点,一打就跳到其他地方了。
  • HarmonyOS Next 实现登录注册页面(ARKTS) 并使用Springboot作为后端提供接口
  • Spring Boot集成Swagger API文档:傻瓜式零基础教程
  • unity学习52:UI的最基础组件 rect transform,锚点anchor,支点/轴心点 pivot
  • 首次使用WordPress建站的经验分享(一)
  • Json和JsonString之间互转总结
  • 杨建全已任天津市委副秘书长、市委市政府信访办主任
  • 技术派|威胁F-35、击落“死神”,胡塞武装防空战力如何?
  • 雅典卫城上空现“巨鞋”形状无人机群,希腊下令彻查
  • 北方将现今年首场大范围高温天气,山西河南山东陕西局地可超40℃
  • 中拉互联网发展与合作论坛在西安开幕
  • 李峰已任上海青浦区委常委