【Linux】#7 | vi/vim 编辑器

一、vi/vim 简介

vi 是 visual interface 的简称,是 Linux 中最经典的文本编辑器。 同图形化界面中的文本编辑器一样,vi 是命令行下对文本文件进行编辑的最佳选择。

vim 是 vi 的加强版本,完全兼容 vi 的所有指令。不仅能编辑文本,还支持 shell 程序编辑,可以用不同颜色字体辨别语法正确性,极大方便程序的设计与编辑。

vi/vim 一共分为三种工作模式:

  1. 命令模式 :打开文件默认进入。敲击按键会被识别为命令,不能直接编辑文本。
  2. 输入模式(插入 / 编辑模式) :可以自由输入、修改文本。按下 Esc 返回命令模式。
  3. 底线命令模式 :在命令模式输入 : 进入,多用于文件保存、退出、编辑器配置。

二、基础语法

复制代码
vi 文件路径
vim 文件路径
  • 如果路径对应的文件不存在:命令会新建文件并进入编辑
  • 如果文件已经存在:打开已有文件进行编辑

打开文件后,默认处于 命令模式

三、快速上手体验(完整操作流程)

  1. 执行命令 vim hello.txt,新建 / 打开文件,进入命令模式
  2. 命令模式按下 i,切换到输入模式
  3. 在输入模式输入文本:itheima and itcast
  4. 输入完毕,按下 Esc,退回命令模式
  5. 命令模式输入 :,进入底线命令模式
  6. 底线命令输入 wq,保存文件并退出 vim 编辑器

四、命令模式快捷键

4.1 命令模式 → 输入模式切换

表格

模式 命令 描述
命令模式 i 在当前光标位置进入输入模式
命令模式 a 在当前光标位置之后进入输入模式
命令模式 I(大写) 在当前行的开头,进入输入模式
命令模式 A(大写) 在当前行的结尾,进入输入模式
命令模式 o(小写) 在当前光标下一行新建空行,进入输入模式
命令模式 O(大写) 在当前光标上一行新建空行,进入输入模式
输入模式 Esc 任何时候按下 Esc,回到命令模式

4.2 命令模式:复制 / 删除 / 撤销 / 光标跳转

表格

模式 命令 描述
命令模式 dd 删除光标所在行的内容
命令模式 ndd n 为数字,删除当前光标向下 n 行
命令模式 yy 复制当前行
命令模式 nyy n 为数字,复制当前行以及下方 n 行
命令模式 p 粘贴已经复制的内容
命令模式 u 撤销修改
命令模式 ctrl + r 反向撤销(恢复被撤销的内容)
命令模式 gg 光标跳到文档首行
命令模式 G 光标跳到文档末尾行
命令模式 dG 从当前行开始,向下全部删除
命令模式 dgg 从当前行开始,向上全部删除
命令模式 d$ 从当前光标开始,删除到本行的结尾
命令模式 d0 从当前光标开始,删除到本行的开头

五、底线命令模式(输入 : 开启)

表格

模式 命令 描述
底线命令模式 :wq 保存并退出
底线命令模式 :q 仅退出(有修改时无法退出)
底线命令模式 :q! 强制退出,不保存修改
底线命令模式 :w 仅保存,不退出
底线命令模式 :set nu 显示行号
底线命令模式 :set paste 设置粘贴模式(粘贴代码避免自动缩进错乱)

复习小结

  1. 模式流转:打开文件 → 命令模式 ;i/a/o → 输入模式;Esc 回到命令模式;命令模式输入 : → 底线命令模式。
  2. 核心记忆:yy复制、dd删除、p粘贴;u撤销;:wq保存退出。
相关推荐
Escalating_xu1 小时前
【Linux 网络编程】UDP Socket 编程(上):从地址与字节序到完整回显服务器
linux·服务器·网络
重生之小比特1 小时前
【Linux系统】08 进程切换
linux·运维·服务器
kyle~1 小时前
Linux --- 内存管理内核子系统
linux·运维·服务器
昌原的儿子LEO1 小时前
嵌入式 Linux I2C 驱动开发核心知识总结:设备树与 platform 架构全解析
linux·驱动开发·架构
程序员-Benothing1 小时前
Linux内存管理详解:free、vmstat、buff/cache、swap
linux·运维·服务器
_不会dp不改名_2 小时前
leetcode_3727 最大平方交替和
linux·算法·leetcode
Lsetea2 小时前
OpenSSL报certificate revoked:error 23与CRL吊销层级排查
linux·https·ssl证书·openssl·crl
4SAPI2 小时前
多模型API调用实战:一个项目接入GPT、Claude和DeepSeek
linux·人工智能·gpt·php
Escalating_xu2 小时前
【Linux 网络编程】UDP Socket 编程(下):回调封装、网络字典与多线程聊天室
linux·网络·udp