欢迎光临
我们一直在努力

Linux 基础操作:vi/vim 文本编辑器核心用法全解析(跨发行版适配)

Linux 基础操作:vi/vim 文本编辑器核心用法全解析(跨发行版适配)

vi/vim 是 Linux/macOS 系统中默认预装、功能强大、无图形依赖的文本编辑器,贯穿日常文件编辑、配置修改、脚本编写、日志查看等所有场景,是技术人员必备的核心工具。本文将聚焦 vi/vim 的三大模式切换、基础编辑、保存退出、查找替换核心功能,明确红帽(RHEL)、CentOS、EulerOS、Ubuntu、Debian 及 macOS 的适配要点,打造跨平台通用的 vi/vim 入门指南,助力新手快速上手、高效使用。

一、vi/vim 基础认知与发行版适配

1. vi 与 vim 的关系

  • vi:原始文本编辑器,所有 Linux/macOS 系统默认预装,功能基础但稳定;
  • vim:vi 的增强版(Vi Improved),兼容 vi 所有操作,新增语法高亮、代码补全、多级撤销、查找替换增强等功能,是当前主流使用的版本;
  • 命令调用:vi 文件名 与 vim 文件名 均可启动,现代系统中 vi 通常是 vim 的软链接(执行 vi 实际启动 vim),功能完全一致。

2. 发行版适配总览

✅ 预装情况:

  • 红帽(RHEL)、CentOS 7+/8+/Stream、EulerOS:默认预装 vim-minimal(基础版),如需完整功能可安装 vim-enhanced(sudo dnf install vim-enhanced);
  • Ubuntu 16.04+、Debian 9+:默认预装完整版 vim,开箱即用;
  • macOS:默认预装 vi,vim 需手动安装(brew install vim,Homebrew 工具),安装后功能与 Linux 完全一致。

✅ 核心功能一致性:

  • 三大模式切换、基础编辑、保存退出、查找替换等核心操作,所有发行版完全一致,无任何差异;
  • 仅 macOS 原生 vi 无语法高亮,安装 vim 后可开启(默认自动开启),不影响核心使用。

二、vim 核心:三大模式切换(入门关键)

vim 的核心逻辑是模式化操作,不同模式对应不同功能,切换流畅是高效使用的前提,三大核心模式如下:

1. 三大模式定义与功能

模式名称核心功能进入方式退出方式
命令模式(Normal Mode) 光标移动、复制粘贴、删除、查找、模式切换、保存退出(核心控制模式) 启动 vim 后默认进入;其他模式按 Esc 键返回 按 i/a/o 等键进入插入模式;按 : 进入末行模式
插入模式(Insert Mode) 文本输入、编辑、修改(实际打字的模式) 命令模式下按 i/a/o/I/A/O 键 按 Esc 键返回命令模式
末行模式(Command-Line Mode) 保存文件、退出编辑器、查找替换、全局操作(命令输入模式) 命令模式下按 :(冒号)键 执行命令后自动返回命令模式;按 Esc 键取消命令输入

2. 模式切换实战示意图(必记)

启动 vim(vim 文件名) → 命令模式(默认)
↓ 按 i/a/o 等
插入模式(编辑文本)
↓ 按 Esc 键
命令模式
↓ 按 : 键
末行模式(输入命令,如 wq 保存退出)
↓ 执行命令(如 wq)
退出 vim

3. 模式切换常见问题

  • ❌ 问题:进入插入模式后无法输入 / 删除?→ 确认已按 i 键(左下角显示 — INSERT –),未进入插入模式仅能执行命令,无法编辑;
  • ❌ 问题:末行模式输入后无反应?→ 需按 Enter 键执行命令,按 Esc 可取消输入;
  • ✅ 技巧:忘记当前模式时,连续按 2-3 次 Esc 键,必返回命令模式(万能重置)。

三、vim 基础操作:编辑、保存、退出(高频使用)

1. 命令模式:光标移动(编辑前必备)

命令模式下无法编辑文本,仅能移动光标、执行快捷操作,以下为高频光标移动命令(全发行版通用):

命令功能说明优先级
↑/↓/←/→ 上下左右移动光标(基础,兼容所有键盘) ✅ 入门必用
h/j/k/l 替代方向键(左 / 下 / 上 / 右),高效操作(程序员首选) ✅ 进阶必记
gg 跳转到文件开头(第 1 行) ✅ 高频
G 跳转到文件末尾(最后 1 行) ✅ 高频
nG 跳转到第 n 行(如 10G 跳转到第 10 行) ✅ 实用
^ 跳转到当前行开头(非空格字符) ✅ 常用
$ 跳转到当前行末尾 ✅ 常用
w 按单词跳跃(光标移动到下一个单词开头) ✅ 实用
b 按单词回跳(光标移动到上一个单词开头) ✅ 实用
Ctrl + f 向下翻 1 页(forward) ✅ 大文件常用
Ctrl + b 向上翻 1 页(backward) ✅ 大文件常用

2. 插入模式:文本编辑(核心输入模式)

命令模式下按以下键进入插入模式,开始编辑文本(左下角显示 — INSERT –):

命令进入方式说明适用场景
i 在光标当前位置插入文本 ✅ 最常用(默认)
a 在光标后一位插入文本 ✅ 补充输入(如光标在单词中间,向后插入)
o 在光标所在行下方新建一行并插入 ✅ 新增内容(换行输入)
I 在当前行开头插入文本(无论光标位置) ✅ 行首添加(如配置文件注释)
A 在当前行末尾插入文本(无论光标位置) ✅ 行尾补充(如日志追加)
O 在光标所在行上方新建一行并插入 ✅ 插入到上一行(如代码插队)
插入模式编辑技巧
  • 正常打字、删除(Backspace 键删除光标前字符,Delete 键删除光标后字符);
  • 换行:Enter 键,缩进:Tab 键(与普通编辑器一致);
  • 退出编辑:按 Esc 键返回命令模式(必记)。

3. 命令模式:快捷编辑(复制、粘贴、删除)

命令模式下无需进入插入模式,可通过快捷命令实现复制、粘贴、删除,效率更高:

操作类型命令功能说明
删除 x 删除光标所在字符(等价于 Delete 键)
dd 删除光标所在整行(高频,如删除配置项)
ndd 删除从光标行开始的 n 行(如 3dd 删除 3 行)
dw 删除光标所在位置到单词末尾的内容
复制 yy 复制光标所在整行(高频)
nyy 复制从光标行开始的 n 行(如 5yy 复制 5 行)
yw 复制光标所在位置到单词末尾的内容
粘贴 p 将复制 / 删除的内容粘贴到光标下方(整行)或光标后(字符 / 单词)
P 将复制 / 删除的内容粘贴到光标上方(整行)或光标前(字符 / 单词)
撤销 / 重做 u 撤销上一步操作(高频,如误删恢复)
Ctrl + r 重做被撤销的操作(如撤销后反悔)
实战示例

# 1. 编辑文件(启动 vim,默认命令模式)
vim test.txt

# 2. 命令模式下复制第 3 行到第 5 行
3G # 跳转到第 3 行
3yy # 复制 3-5 行
8G # 跳转到第 8 行
p # 粘贴到第 8 行下方

# 3. 命令模式下删除第 6 行
6G # 跳转到第 6 行
dd # 删除该行

# 4. 撤销删除操作
u # 恢复第 6 行

4. 末行模式:保存与退出(核心收尾操作)

命令模式下按 : 键进入末行模式(光标移到屏幕底部),输入以下命令后按 Enter 执行,实现保存、退出或强制操作:

命令功能说明优先级适用场景
:w 保存文件(不退出) ✅ 最常用 编辑中定期保存,防止内容丢失
:q 退出 vim(文件未修改时) ✅ 常用 打开文件未编辑,直接退出
:wq 保存文件并退出 ✅ 高频 编辑完成后正常保存退出
:q! 强制退出(不保存修改) ✅ 实用 编辑错误不想保存,强制退出
:w! 强制保存(需权限) ❗ 特殊场景 普通用户编辑系统文件,用 sudo vim 打开后强制保存
:w 新文件名 另存为新文件(不覆盖原文件) ✅ 实用 复制文件内容并保存为新文件
保存退出常见问题
  • ❌ 问题:: 输入后无法打字?→ 确认已从命令模式进入(按 Esc 重置后再按 :);
  • ❌ 问题:q 退出提示 E37: No write since last change (add ! to override) → 文件已修改未保存,用 :wq 保存退出或 :q! 强制退出;
  • ❌ 问题:w 保存提示 E212: Can't open file for writing → 无文件写入权限,用 sudo vim 文件名 重新打开或 :w! 强制保存(需 root 权限)。

四、vim 高效技巧:查找与替换(批量操作必备)

查找与替换是 vim 提升效率的核心功能,支持单文件精准查找、批量替换、全局匹配,适用于配置文件修改、脚本批量编辑等场景。

1. 查找功能(命令模式下执行,无需进入末行模式)

核心命令
命令功能说明后续操作
/关键词 从光标位置向下查找关键词(如 /error 查找 error) n:跳转到下一个匹配结果;N:跳转到上一个匹配结果
?关键词 从光标位置向上查找关键词(如 ?warning 向上查找 warning) n:跳转到上一个匹配结果;N:跳转到下一个匹配结果
:set hlsearch 开启查找结果高亮(默认关闭,开启后更直观) 永久开启:编辑 ~/.vimrc 文件,添加 set hlsearch
:nohlsearch 关闭查找结果高亮(查找后清理屏幕) 快捷键:命令模式下按 Esc 两次(部分系统支持)
查找实战示例

# 1. 打开日志文件,查找所有 error 关键字
vim /var/log/messages

# 2. 命令模式下输入 /error,按 Enter 开始向下查找
/error

# 3. 按 n 跳转到下一个 error,按 N 跳转到上一个 error
# 4. 开启高亮显示
:set hlsearch

# 5. 关闭高亮显示
:nohlsearch

2. 替换功能(末行模式下执行,需按 : 进入)

核心语法(支持模糊匹配、全局替换、确认替换)

# 基础语法:s/原内容/替换内容/[选项]
# 范围说明:默认仅替换当前行;% 表示整个文件;n,m 表示第 n 到 m 行

命令功能说明优先级
:s/old/new 替换当前行第一个 old 为 new ✅ 常用
:s/old/new/g 替换当前行所有 old 为 new(g=global) ✅ 高频
:%s/old/new 替换整个文件第一个 old 为 new ❗ 慎用(避免误替换)
:%s/old/new/g 替换整个文件所有 old 为 new(全局替换,高频) ✅ 批量操作必备
:%s/old/new/gc 全局替换,替换前提示确认(c=confirm,推荐) ✅ 安全首选
:n,m s/old/new/g 替换第 n 到 m 行所有 old 为 new(如 :3,10 s/name/user/g) ✅ 精准替换
替换实战示例

# 1. 编辑脚本文件,将所有 "test" 替换为 "prod",并提示确认
vim script.sh

# 2. 末行模式下输入全局确认替换命令
:%s/test/prod/gc

# 3. 按提示操作:y=替换,n=不替换,a=替换所有,q=退出替换

3. 查找替换发行版适配说明

✅ 红帽 / CentOS/EulerOS/Ubuntu/Debian/macOS:查找替换的命令、语法、选项完全一致,无任何差异;⚠️ 注意:全局替换(:%s/old/new/g)需谨慎,建议先备份文件(cp 原文件 备份文件),或使用 gc 选项逐行确认,避免误替换关键内容。

五、各发行版 vi/vim 完整适配汇总表

功能维度红帽(RHEL)CentOSEulerOSUbuntuDebianmacOS(原生 vi)macOS(brew 安装 vim)
预装情况 预装 vim-minimal 预装 vim-minimal 预装 vim-minimal 预装完整版 vim 预装完整版 vim 预装 vi(无 vim) 需手动安装(brew install vim)
三大模式切换 ✅ 完全支持 ✅ 完全支持 ✅ 完全支持 ✅ 完全支持 ✅ 完全支持 ✅ 完全支持 ✅ 完全支持
基础编辑(复制 / 粘贴 / 删除) ✅ 支持 ✅ 支持 ✅ 支持 ✅ 支持 ✅ 支持 ✅ 支持 ✅ 支持
保存退出(:w/:q/:wq) ✅ 支持 ✅ 支持 ✅ 支持 ✅ 支持 ✅ 支持 ✅ 支持 ✅ 支持
查找替换(/ 关键词 /:% s) ✅ 支持 ✅ 支持 ✅ 支持 ✅ 支持 ✅ 支持 ✅ 支持 ✅ 支持
语法高亮 ❌ 需安装 vim-enhanced ❌ 需安装 vim-enhanced ❌ 需安装 vim-enhanced ✅ 默认开启 ✅ 默认开启 ❌ 无 ✅ 默认开启
多级撤销(u/Ctrl+r) ✅ 支持 ✅ 支持 ✅ 支持 ✅ 支持 ✅ 支持 ❌ 仅一级撤销 ✅ 支持

六、vim 入门常见问题与避坑指南

❌ 问题 1:启动 vim 后无法输入文本

→ 原因:未进入插入模式(默认命令模式);→ 解决方案:按 i 键(左下角显示 — INSERT –),即可开始输入。

❌ 问题 2:编辑完成后无法退出 vim

→ 原因:未进入末行模式或输入错误命令;→ 解决方案:按 Esc 键返回命令模式,再按 : 进入末行模式,输入 wq 保存退出或 q! 强制退出。

❌ 问题 3:查找后结果不高亮,看不清匹配项

→ 解决方案:末行模式输入 :set hlsearch 开启高亮,关闭用 :nohlsearch。

❌ 问题 4:全局替换后发现误操作,如何恢复?

→ 解决方案:① 未退出 vim 时,按 u 键撤销替换操作(多次按 u 可多级撤销);② 已退出 vim 时,依赖文件备份(替换前建议 cp 原文件 原文件.bak)。

❌ 问题 5:macOS 原生 vi 无语法高亮,编辑代码不便

→ 解决方案:安装 Homebrew(/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"),再安装 vim(brew install vim),启动用 vim 文件名,默认开启语法高亮。

七、vim 入门必备快捷键总结(高效必记)

模式快捷键 / 命令功能
命令模式 i/a/o 进入插入模式
命令模式 Esc 返回命令模式(万能重置)
命令模式 gg/G 跳转到文件开头 / 末尾
命令模式 dd/yy/p 删除整行 / 复制整行 / 粘贴
命令模式 u/Ctrl + r 撤销 / 重做
命令模式 /关键词/?关键词 向下 / 向上查找
命令模式 n/N 查找下一个 / 上一个匹配项
末行模式 :w/:q/:wq/:q! 保存 / 退出 / 保存退出 / 强制退出
末行模式 :%s/old/new/gc 全局替换并确认

总结

vi/vim 的核心是模式化操作,掌握 “命令模式→插入模式→末行模式” 的切换逻辑,再熟练保存退出、基础编辑、查找替换等核心功能,即可应对 90% 以上的文本编辑场景。红帽、CentOS、EulerOS、Ubuntu、Debian 五大 Linux 发行版的 vi/vim 用法完全一致,仅需注意部分系统需安装完整版 vim 以开启语法高亮;macOS 原生 vi 功能基础,安装 vim 后可实现与 Linux 完全一致的体验。

赞(0)
未经允许不得转载:171主机测评 » Linux 基础操作:vi/vim 文本编辑器核心用法全解析(跨发行版适配)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址