Skip to content

5. Vim 编辑器使用

本章系统介绍 Linux 环境中常用文本编辑器 Vim 的使用方法。通过掌握基本操作、模式切换与常用命令,可在服务器环境中高效完成配置文件编辑、日志查看与脚本修改。

🧠 知识点:Vim 是 Vi 的增强版编辑器,内置于几乎所有 Linux 发行版中。其核心理念是“模式化编辑”,即通过不同模式完成插入、命令、选择等操作。


5.1 Vim 三种基本模式

🧠 知识点:Vim 的核心操作基于三种主要模式,每种模式负责不同的编辑任务:

模式名称英文名进入方式功能说明退出方式
普通模式Normal Mode启动后默认进入;从插入模式按 Esc 返回执行光标移动、删除、复制、粘贴、查找等操作,不可直接输入文字iao 进入插入模式
插入模式Insert Mode在普通模式下按 iaoIA可直接输入文本内容,类似常规编辑器的输入模式Esc 返回普通模式
命令行模式Command-Line Mode在普通模式下按 :/?输入并执行命令,如保存(:w)、退出(:q)、搜索(/pattern)、替换等执行命令或按 Esc 返回普通模式

💡 提示:Vim 启动后默认处于 普通模式。按 iao 进入 插入模式 以编辑内容;按 : 进入 命令行模式 执行保存、退出、搜索等命令。

检查点:按下 Esc 键时,若底部状态栏无提示符号,说明已成功回到普通模式。


5.2 打开与退出 Vim

🛠️ 操作步骤

  1. 打开文件(若文件不存在则自动创建):

    bash
    vim filename
  2. 保存并退出:

    bash
    :wq  # 写入文件并退出
  3. 仅退出(不保存修改):

    bash
    :q!  # 强制退出
  4. 仅保存但不退出:

    bash
    :w  # 保存修改

⚠️ 注意:若文件权限不足,可使用 :w !sudo tee % 提升写入权限。

检查点:退出前应确认命令行模式左下角提示 written 表示保存成功。


5.3 插入与删除文本

🧠 知识点:在 Vim 中,文本编辑需从普通模式切换到插入模式。

🛠️ 操作步骤

  1. 进入插入模式:

    bash
    i  # 在光标前插入
    a  # 在光标后插入
    o  # 在下一行插入新行
  2. 删除文本:

    bash
    x   # 删除光标处字符
    dd  # 删除整行
    D   # 删除光标到行尾内容

💡 提示:连续按多次命令可进行批量操作,例如 3dd 表示删除 3 行。

检查点:执行删除操作后,使用 u 可撤销上一步操作。


5.4 复制与粘贴文本

🛠️ 操作步骤

  1. 复制文本:

    bash
    yy  # 复制当前行
    5yy # 复制从当前行起的 5 行
  2. 粘贴文本:

    bash
    p   # 在光标后粘贴
    P   # 在光标前粘贴

💡 提示:Vim 的复制缓冲区称为“寄存器(Register)”,默认使用匿名寄存器保存复制内容。

检查点:复制后执行 p 粘贴,确认目标内容成功写入。


5.5 撤销与重做

🧠 知识点:Vim 支持多层撤销与重做操作,便于恢复编辑历史。

bash
u     # 撤销上一步操作
Ctrl + r  # 重做被撤销的操作

⚠️ 注意:过多的撤销历史会在退出后清除,无法跨会话保存。

检查点:使用 u 撤销删除后,再按 Ctrl + r 应能恢复原行。


5.6 搜索与替换

🧠 知识点:Vim 支持正则匹配搜索与范围替换。

🛠️ 操作步骤

  1. 搜索关键字:

    bash
    /keyword  # 向下搜索
    ?keyword  # 向上搜索
    n         # 查找下一个匹配项
    N         # 查找上一个匹配项
  2. 替换文本:

    bash
    :%s/old/new/g       # 全文替换
    :5,10s/old/new/g    # 替换第 5 到 10 行
    :%s/old/new/gc      # 全文替换并逐一确认

⚠️ 注意:替换命令前缀 % 表示全文范围,可替换为具体行号区间。

检查点:执行替换后 Vim 状态栏应提示“X substitutions”。


5.7 可视模式操作

🧠 知识点:可视模式可选择文本区域进行复制、删除或格式化。

🛠️ 操作步骤

  1. 进入可视模式:

    bash
    v   # 按字符选择
    V   # 按行选择
    Ctrl + v  # 按块选择(列编辑)
  2. 对选中内容执行操作:

    bash
    d   # 删除选中区域
    y   # 复制选中区域
    >   # 向右缩进
    <   # 向左缩进

💡 提示:按下 Esc 可退出可视模式并返回普通模式。

检查点:选中多行后按 y,再到目标处按 p 应成功粘贴。


5.8 显示与格式化

🧠 知识点:通过设置参数可优化 Vim 显示效果与代码阅读体验。

🛠️ 操作步骤

bash
:set number        # 显示行号
:set autoindent    # 自动缩进
:set tabstop=4     # 设置 Tab 宽度为 4 空格
:set ignorecase    # 搜索时忽略大小写
:set hlsearch      # 高亮显示匹配结果

💡 提示:可将常用配置写入 ~/.vimrc 文件以便永久生效。


5.9 保存、退出与恢复

🧠 知识点:Vim 支持多种保存退出方式,并可在异常中断后恢复。

🛠️ 操作步骤

bash
:w      # 保存但不退出
:q      # 退出(若有未保存内容会提示)
:q!     # 强制退出不保存
:wq     # 保存并退出
ZZ      # 等效于 :wq

💡 提示:若 Vim 因系统中断而崩溃,重新打开文件时会提示恢复选项,可选择 :recover 命令恢复上次编辑内容。

⚠️ 注意:恢复完成后请手动删除 .swp 交换文件,以免下次启动警告。


5.10 常见问题与排查

🔍 故障排查

  • 问题 1: 忘记保存文件就退出 Vim?
    解决方法: 若存在 .swp 文件,可重新打开原文件并执行 :recover

  • 问题 2: 编辑系统文件提示权限不足?
    解决方法: 在 Vim 中执行:

    bash
    :w !sudo tee %
  • 问题 3: Vim 无法输入中文?
    解决方法: 确认系统 locale 设置正确,如 export LANG=zh_CN.UTF-8

💡 提示:可以使用 vimtutor 命令进入官方教学模式练习基础操作。


5.11 实践任务

  1. 打开 /etc/hosts 文件,尝试添加新条目并保存退出。
  2. 使用可视模式复制多行到新位置。
  3. 练习使用 /keyword 搜索并替换为新内容。
  4. ~/.vimrc 中添加基础配置(如行号与缩进)。

检查点:执行 cat ~/.vimrc 时应能看到自定义配置已生效。


5.12 常用快捷键汇总表

功能快捷键说明
保存并退出:wqZZ写入并关闭文件
强制退出不保存:q!丢弃修改退出
撤销u撤销上一步操作
重做Ctrl + r恢复被撤销的操作
删除行dd删除当前行
复制行yy复制当前行
粘贴p在光标后粘贴
搜索关键字/keyword向下搜索
全文替换:%s/old/new/g替换全文中的字符串
显示行号:set number显示行号
自动缩进:set autoindent启用缩进
块选择Ctrl + v进入列编辑模式

🧾 总结: 本章从基础模式到常用命令系统讲解了 Vim 的核心操作逻辑。熟练掌握 Vim 能大幅提升在命令行环境下的文本编辑效率,是 Linux 运维与开发人员的必备技能。

采用 CC BY-NC-ND 4.0 许可。欢迎邮件反馈(zslinux@qq.com)