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

Linux vi模式:从入门到精通

在Linux系统中,vi(或vim,即vi的增强版)是一个经典的文本编辑器。尽管它的学习曲线稍显陡峭,但一旦掌握,你将发现它是一个极其高效的工具。本文将带你从基础到进阶,全面了解vi模式的使用。


一、什么是vi模式?

vi编辑器有两种主要模式:

  1. 命令模式(Command Mode):用于执行编辑命令(如复制、粘贴、删除等)。
  2. 插入模式(Insert Mode):用于输入文本。

这种模式切换的设计是vi的核心特点,也是初学者最容易感到困惑的地方。


二、启动与退出vi

启动vi

在终端中输入以下命令即可启动vi

vi filename

如果文件存在,vi会打开它;如果文件不存在,vi会创建一个新文件。

退出vi
  • 保存并退出
    1. Esc键确保处于命令模式。
    2. 输入:wq,然后按Enter
  • 不保存退出
    1. Esc键确保处于命令模式。
    2. 输入:q!,然后按Enter

三、vi模式切换

  1. 从命令模式进入插入模式

    • i:在当前光标位置插入。
    • a:在当前光标后插入。
    • o:在当前行下方插入新行。
    • I:在当前行首插入。
    • A:在当前行尾插入。
  2. 从插入模式返回命令模式

    • Esc键。

四、常用命令模式操作

光标移动
  • h:左移。
  • j:下移。
  • k:上移。
  • l:右移。
  • 0:移动到行首。
  • $:移动到行尾。
  • gg:移动到文件开头。
  • G:移动到文件末尾。
文本编辑
  • x:删除当前字符。
  • dd:删除当前行。
  • yy:复制当前行。
  • p:粘贴复制的内容。
  • u:撤销上一次操作。
  • Ctrl + r:重做上一次操作。
搜索与替换
  • /keyword:搜索关键字(按n跳转到下一个匹配项)。
  • :%s/old/new/g:全局替换oldnew
保存与退出
  • :w:保存文件。
  • :q:退出(未修改时)。
  • :wq:保存并退出。
  • :q!:强制退出,不保存。

五、高级技巧

多文件编辑
  • :e filename:打开另一个文件。
  • :bn:切换到下一个文件。
  • :bp:切换到上一个文件。
分屏操作
  • :sp filename:水平分屏打开文件。
  • :vsp filename:垂直分屏打开文件。
  • Ctrl + w + h/j/k/l:在分屏间切换。
宏录制
  • qa:开始录制宏(a是寄存器名称)。
  • q:停止录制。
  • @a:执行录制的宏。

六、vim的增强功能

vimvi的增强版,支持更多功能:

  • 语法高亮:自动识别代码语法并高亮显示。
  • 插件支持:通过插件扩展功能(如代码补全、文件浏览)。
  • 多级撤销:支持无限次撤销操作。

七、学习资源推荐

  1. 内置教程
    • 在终端输入vimtutor,启动vim自带的交互式教程。
  2. 在线文档
    • :help:在vim中输入此命令查看详细帮助文档。
  3. 书籍推荐
    • 《Practical Vim》:深入讲解vim的高级技巧。

八、总结

vi模式虽然初学时有挑战,但它的高效性和灵活性使其成为Linux用户不可或缺的工具。通过掌握命令模式和插入模式的切换,以及常用操作和高级技巧,你将能够快速编辑文本、编写代码,甚至管理多个文件。希望这篇博客能帮助你更好地理解和使用vi模式!


小提示:如果你觉得vi的命令模式难以适应,可以尝试nanogedit等更简单的编辑器。但一旦熟悉vi,你会发现它的强大之处!


http://www.kler.cn/a/553368.html

相关文章:

  • 【第一节】C++设计模式(创建型模式)-工厂模式
  • 多模态机器学习火热idea汇总!
  • MYSQL总结(2)
  • 鸿蒙5.0实战案例:图片选择和下载保存案例
  • 卷积神经网络之AlexNet经典神经网络,实现手写数字0~9识别
  • 2025软件测试就业形势剖析:机遇与挑战交织
  • 换服务器需要做的工作(记录一下)
  • [生活杂项][运动教程]自由泳
  • 语音识别中的MFCC特征提取:时频分析如何转化为机器可理解的声学参数?(附完整代码实现)
  • Deepseekv3原理架构中的数学公式,通过高度概括实现快速入门
  • VS Code 如何搭建C/C++开发环境
  • CAN总线常见的错误帧及产生原因
  • 目标检测之YOLO论文简读
  • spring boot知识点3
  • 鸿蒙开发:V2版本装饰器之@Monitor装饰器
  • 代码讲解系列-CV(四)——目标检测初探
  • 【pytest】编写自动化测试用例命名规范README
  • 模拟与高精度
  • 在IDEA的Maven中(同步所有Maven项目)和(重新加载所有Maven项目)的区别
  • 【面试题】杭州士腾科技-面试题汇总