Vim 命令详解与技巧总结Vim 是 Linux 环境中功能最强大的文本编辑器之一其核心设计理念是模式化编辑——通过将编辑与导航分离让双手无需离开键盘即可完成所有操作。本文从基础到进阶系统梳理 Vim 的核心命令与实用技巧。一、核心模式Vim 启动后默认进入普通模式Normal Mode这是执行所有编辑命令的入口。理解并熟练切换以下四种模式是掌握 Vim 的关键模式进入方式用途普通模式Esc从任何模式返回移动光标、删除、复制、粘贴、撤销等插入模式i/a/o/I/A/O输入文本内容可视模式v字符/V行/Ctrlv块选择文本进行批量操作命令行模式:执行保存、退出、搜索替换等命令核心原则任何模式下按Esc都能回到普通模式。二、基础操作1. 光标移动字符级移动h— 左移一格j— 下移一行k— 上移一行l— 右移一格单词级移动w— 跳到下一个单词开头b— 回到上一个单词开头e— 跳到当前单词末尾0— 跳到行首^— 跳到行首第一个非空白字符$— 跳到行尾文件级移动gg— 跳到文件第一行G— 跳到文件最后一行:n— 跳转到第 n 行如:10Ctrlf— 向下翻一页Ctrlb— 向上翻一页Ctrld— 向下翻半页Ctrlu— 向上翻半页2. 插入文本命令功能i在光标前插入a在光标后插入I在行首插入A在行尾插入o在当前行下方新建一行O在当前行上方新建一行3. 删除、复制与粘贴删除x— 删除当前字符dd— 删除当前行dw— 删除一个单词d$— 删除从光标到行尾D— 同d$复制yy— 复制当前行yw— 复制一个单词y$— 复制从光标到行尾粘贴p— 粘贴到光标后P— 粘贴到光标前4. 撤销与重做u— 撤销上一步操作Ctrlr— 重做撤销的逆操作5. 保存与退出命令功能:w保存文件:q退出有修改时会提示:wq或:x保存并退出:q!强制退出放弃修改ZZ保存并退出普通模式下ZQ强制退出不保存三、高效编辑技巧1. 操作符 动作命令的组合Vim 最强大的特性之一是组合命令将一个操作符与一个动作命令组合形成强大的编辑原语--23。常用操作符d删除、y复制、c修改/删除并进入插入模式、右缩进、左缩进、g~切换大小写。组合示例d2w— 删除 2 个单词y3j— 复制当前行及向下 3 行cw— 修改从光标到单词结尾删除并进入插入模式ciw— 修改当前整个单词change inner worddap— 删除整个段落da— 删除双引号及其内容yip— 复制当前段落— 当前行右缩进— 当前行左缩进2. 数字前缀重复操作在命令前加数字可重复执行多次3j— 向下移动 3 行5w— 向前跳转 5 个单词10dd— 删除 10 行3p— 粘贴 3 次-3. 重复上一次操作.句号— 重复上一次编辑操作4. 搜索与替换搜索/pattern— 向下搜索 pattern?pattern— 向上搜索 patternn— 跳转到下一个匹配N— 跳转到上一个匹配*— 搜索光标下的单词向下#— 搜索光标下的单词向上替换:s/old/new— 替换当前行第一个 old:s/old/new/g— 替换当前行所有 old:%s/old/new/g— 替换全文所有 old:%s/old/new/gc— 全文替换每次需确认5. 可视模式批量操作三种选择方式v— 字符可视精细选择V— 行可视整行选择Ctrlv— 块可视列选择选中后可直接执行d删除、y复制、缩进等操作。1. 批量插入在相同列添加内容假设你想在第 3 列统一加一个逗号,将光标移动到第一行目标列的位置比如第 3 列。按Ctrl v进入可视块模式。向下移动光标按j或G选中所有需要操作的行。按Shift i即大写I进入插入模式。输入你要添加的字符如,。关键一步按Esc键稍等片刻所有选中的行都会在光标列插入该字符。2. 批量修改/替换将相同列的内容换成新文字如果你想把这列里的旧字符比如所有行的第 2~5 列统一改成新内容如---将光标移到第一行目标列的起始位置。按Ctrl v选中块按l小写 L向右扩展列按j向下扩展行精确框选住旧文本。按c修改键选中的矩形块会被删除并自动进入插入模式。输入你要替换的新内容如---。按Esc新内容会填满整个选中的矩形区域。3. 批量删除删除相同列的内容想删除所有行第 5 列的单个字符或连续 3 列的内容删除单个字符Ctrl v选中多行的该列 → 按d。删除连续多列Ctrl v选中块 → 向右扩展按l选中几列 → 按d。4. 批量追加内容在选中块的最右侧统一加东西如果你想在每行选中的列之后统一加内容类似追加而不是插入在光标前Ctrl v选中列块可以选择整列或只框选一个点。按Shift a即大写A进入插入模式。此时光标会跳到当前行选中区域的末尾输入你要追加的字符。按Esc所有行的同一列后面都会加上该字符。四、进阶功能1. 宏录制自动化重复操作宏可以录制一系列操作并重复执行操作步骤qa— 开始录制到寄存器 aq 寄存器名执行一系列操作如删除、修改、移动等q— 结束录制a— 播放宏一次10a— 播放宏 10 次实战技巧录制时使用相对运动如f/t定位而非绝对行号使宏更具通用性。2. 寄存器系统Vim 提供多种寄存器用于精细化的文本操作寄存器类型表示用途无名寄存器默认操作寄存器数字寄存器0-9存储删除历史命名寄存器a-z持久化存储黑洞寄存器_丢弃操作结果删除不保存使用示例ayiw— 将当前单词存入寄存器 aap— 粘贴寄存器 a 的内容y— 复制到系统剪贴板需支持3. 分屏与多窗口分屏操作:sp [file]— 水平分割窗口:vsp [file]— 垂直分割窗口Ctrlw w— 在窗口间循环切换Ctrlw h/j/k/l— 切换到左/下/上/右窗口Ctrlw c— 关闭当前窗口Ctrlw — 均衡窗口大小标签页:tabnew [file]— 新建标签页gt— 切换到下一个标签页gT— 切换到上一个标签页4. 多文件编辑vim file1 file2— 同时打开多个文件:args— 显示当前编辑的文件列表:next— 切换到下一个文件:prev— 切换到前一个文件5. 插入模式下的小技巧Ctrlh— 删除前一个字符Ctrlw— 删除前一个单词Ctrlr— 粘贴默认寄存器内容Ctrlr— 插入表达式计算结果如时间戳五、个性化配置.vimrcVim 的配置文件~/.vimrc可高度定制 显示设置 set number 显示行号 set relativenumber 显示相对行号 set cursorline 高亮当前行 缩进与制表符 set tabstop4 制表符宽度 set expandtab 将制表符转为空格 set autoindent 自动缩进 搜索优化 set hlsearch 高亮搜索结果 set incsearch 增量搜索 语法高亮 syntax on 开启语法高亮