Zenith Horizon

Vim 编辑器高效使用指南

2026/03/26
loading

这份指南旨在帮你从零基础到熟练使用 Vim,涵盖核心思想、常用操作、进阶技巧以及个性化配置。Vim 的学习曲线较陡,但掌握后能极大提升文本编辑效率。


第一章:核心思想与模式

Vim 的设计哲学是​通过组合命令来高效编辑​,而非一直处于“插入”状态。它最核心的概念是​模式​。

  1. ​普通模式 (Normal Mode)​:Vim 的“待机”状态,用于导航、复制、删除等操作。按 Esc​ 可返回此模式。

  2. ​插入模式 (Insert Mode)​:用于实际输入文本。按 i​ 进入(在光标前插入),按 a​ 进入(在光标后插入),按 o​ 进入(在下一行插入)。

  3. ​可视模式 (Visual Mode)​:用于选中文本块。按 v​ 进入字符可视模式,按 V​ 进入行可视模式,按 Ctrl+v​ 进入块可视模式。

  4. ​命令模式 (Command Mode)​:用于执行保存、退出、查找替换等命令。在普通模式下按 :​ 进入。

​核心法则​:在普通模式下,通过按键组合来“操作”文本,尽量缩短在插入模式中的时间。


第二章:启动、保存与退出

  • ​打开文件​:vim filename​

  • ​保存​::w​

  • ​退出​:

    • ​:q​ (未修改时退出)

    • ​:q!​ (强制退出,不保存修改)

    • ​:wq​ 或 :x​ (保存并退出)

    • ​ZZ​ (普通模式下,保存并退出,相当于 :wq​)


第三章:高效移动(普通模式)

高效移动是 Vim 的精髓。目标是让手指不离开键盘主行区。

1. 基本移动

  • ​h​ j​ k​ l​:左、下、上、右(强烈建议习惯使用,避免方向键)

  • ​w​:移动到下一个单词开头

  • ​b​:移动到上一个单词开头

  • ​e​:移动到单词末尾

  • ​0​:移动到行首

  • ​^​:移动到行首第一个非空字符

  • ​$​:移动到行尾

2. 页面与文档移动

  • ​gg​:移动到文件开头

  • ​G​:移动到文件末尾

  • ​H​:移动到屏幕顶部

  • ​M​:移动到屏幕中央

  • ​L​:移动到屏幕底部

  • ​Ctrl + f​:向下翻页(forward)

  • ​Ctrl + b​:向上翻页(backward)

  • ​Ctrl + d​:向下翻半页(down)

  • ​Ctrl + u​:向上翻半页(up)

3. 搜索定位

  • ​/pattern​:向下搜索 pattern​

  • ​?pattern​:向上搜索 pattern​

  • ​n​:重复上一次搜索,同方向

  • ​N​:重复上一次搜索,反方向

  • ​*​:向下搜索光标下的单词

  • ​#​:向上搜索光标下的单词

4. 精准跳转

  • ​{​:跳转到上一个空行(通常用于段落跳转)

  • ​}​:跳转到下一个空行

  • ​%​:在匹配的括号 ()​、{}​、[]​ 之间跳转


第四章:编辑操作(普通模式)

Vim 的编辑操作遵循 操作符 + 动作 的语法,例如 d​(删除)+ w​(单词)= dw​(删除一个单词)。

1. 删除、复制与粘贴

  • ​删除​:

    • ​x​:删除光标后的字符

    • ​dd​:删除当前行

    • ​dw​:删除光标到单词末尾(包括空格)

    • ​d$​ 或 D​:删除光标到行尾

    • ​d0​:删除光标到行首

  • ​复制​:

    • ​yy​:复制当前行

    • ​yw​:复制光标到单词末尾

    • ​y$​:复制光标到行尾

  • ​粘贴​:

    • ​p​:在光标后粘贴

    • ​P​:在光标前粘贴

2. 修改与替换

  • ​r​:替换光标下的单个字符(无需进入插入模式)

  • ​R​:进入替换模式(覆盖式输入)

  • ​cc​:删除当前行并进入插入模式(相当于 dd​ + i​)

  • ​cw​:删除光标到单词末尾并进入插入模式

  • ​c$​ 或 C​:删除光标到行尾并进入插入模式

  • ​~​:切换大小写

3. 撤销与重做

  • ​u​:撤销

  • ​Ctrl + r​:重做

  • ​.​:重复上一次修改(​这是 Vim 最强大的命令之一​)

4. 可视化模式下的操作

选中文本后,按 d​ 删除,按 y​ 复制,按 I​ 在块前插入,按 A​ 在块后插入。


第五章:搜索与替换(命令模式)

这是 Vim 中非常高效的文本处理功能,语法为::[范围]s/查找/替换/选项​

  • ​替换当前行第一个匹配​::s/old/new/​

  • ​替换当前行所有匹配​::s/old/new/g​

  • ​替换整个文件​::%s/old/new/g​

  • ​替换并确认​::%s/old/new/gc​(c​ 表示 confirm,会有提示)

  • ​指定行范围​::10,20s/old/new/g​ (替换第10到20行)

  • ​使用正则表达式​:

    • ​:%s/\<old\>/new/g​ (\<​ 和 \>​ 表示单词边界,避免替换含 old 的其他单词)


第六章:多文件与窗口管理

1. 分屏操作

  • ​:sp filename​:水平分屏(split)

  • ​:vsp filename​:垂直分屏(vertical split)

  • ​Ctrl + w + w​:在窗口间循环切换

  • ​Ctrl + w + h/j/k/l​:切换到指定方向的窗口

  • ​Ctrl + w + =​:使所有窗口等高/等宽

  • ​Ctrl + w + q​:关闭当前窗口

2. 标签页

  • ​:tabnew filename​:在新标签页打开

  • ​gt​:下一个标签页

  • ​gT​:上一个标签页

3. 缓冲区管理

打开多个文件时(如 vim a.txt b.txt​),每个文件是一个缓冲区。

  • ​:ls​ 或 :buffers​:列出所有缓冲区

  • ​:b n​:切换到编号为 n​ 的缓冲区

  • ​:bd​:删除(关闭)当前缓冲区


第七章:进阶技巧

1. 宏录制

宏可以记录一系列操作并重复执行。

  • ​开始录制​:q​ + 寄存器名(如 q a​,表示录制到寄存器 a​)

  • ​执行操作​:进行一系列编辑

  • ​停止录制​:再次按 q​

  • ​回放宏​:@a​(执行寄存器 a​ 的宏)

  • ​重复多次​:100@a​(执行宏100次)

2. 外部命令

可以在不退出 Vim 的情况下执行 shell 命令。

  • ​:!command​:执行外部命令,如 :!ls​

  • ​:r !command​:将命令输出读取到当前光标处,如 :r !date​

  • ​:w !command​:将当前缓冲区内容作为命令的标准输入

3. 自动补全

在插入模式下:

  • ​Ctrl + n​ 或 Ctrl + p​:根据当前文件中的单词进行补全

  • ​Ctrl + x​ + Ctrl + f​:补全文件名

  • ​Ctrl + x​ + Ctrl + l​:补全整行


第八章:个性化配置(.vimrc)

Vim 的配置位于用户目录下的 .vimrc​ 文件。一个基础的配置示例:

" 基础设置
set number          " 显示行号
set relativenumber  " 显示相对行号(便于快速跳转)
set syntax=on       " 语法高亮
set autoindent      " 自动缩进
set expandtab       " 将 Tab 替换为空格
set tabstop=4       " Tab 宽度为4
set shiftwidth=4    " 缩进宽度为4
set ignorecase      " 搜索时忽略大小写
set smartcase       " 如果搜索包含大写,则启用大小写敏感
set hlsearch        " 高亮搜索结果
set incsearch       " 边输入边搜索
set cursorline      " 高亮当前行
set showmode        " 显示当前模式
set showcmd         " 在底部显示部分命令
set encoding=utf-8  " 设置编码

" 映射快捷键
let mapleader = "," " 定义 <leader> 键为逗号

" 快速保存与退出
nnoremap <leader>w :w<CR>
nnoremap <leader>q :q<CR>
nnoremap <leader>x :x<CR>

" 让 j k 在长行(换行显示的行)中按视觉行移动
nnoremap j gj
nnoremap k gk

" 让分屏切换更自然
nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l

第九章:插件管理

Vim 的功能可以通过插件大幅扩展。现代 Vim(8.0+)内置了包管理器,但更推荐使用第三方插件管理器:

  1. ​vim-plug​(推荐):轻量、并行安装。

    • ​安装​:将 vim-plug 脚本放入 ~/.vim/autoload/plug.vim​。

      call plug#begin('~/.vim/plugged')
      " 在这里添加插件
      Plug 'preservim/nerdtree'       " 文件树
      Plug 'vim-airline/vim-airline'  " 状态栏美化
      Plug 'sheerun/vim-polyglot'     " 语法高亮增强
      Plug 'neoclide/coc.nvim', {'branch': 'release'} " 代码补全(LSP)
      call plug#end()
      
    • ​安装插件​:打开 Vim,运行 :PlugInstall​。


第十章:学习建议与常用命令速查

学习路线建议

  1. ​第1-2天​:强制自己使用 h/j/k/l​ 移动,学会 i​、Esc​、:wq​。

  2. ​第1周​:熟悉 dd​、yy​、p​、u​ 和 .​ 命令,彻底告别鼠标。

  3. ​第2周​:学习 dw​、cw​、ciw​(change inner word)等组合命令,掌握 /​ 搜索。

  4. ​第1个月​:学习宏录制、分屏操作,开始定制 .vimrc​,引入插件。

  5. ​长期​:运行 vimtutor​ 命令(终端内运行)进行系统练习。

常用命令速查表

类别

命令

说明

移动

​0​ $​ gg​ G​

行首、行尾、文件头、文件尾

编辑

​dd​ yy​ p​ u​

删行、复制、粘贴、撤销

插入

​i​ a​ o​ Esc​

前插、后插、下行插、退出插入

查找

​/word​ n​ N​

查找、下一个、上一个

替换

​:%s/old/new/g​

全文件替换

保存退出

​:w​ :q!​ :wq​ ZZ​

保存、强制退出、保存退出

窗口

​:sp​ :vsp​ Ctrl+w+w​

水平分屏、垂直分屏、切换窗口

Vim 不是一款能“速成”的编辑器,它的价值在于将编辑思维转化为肌肉记忆。当手指不再需要思考“按哪个键”时,你就能真正体验到它与文本融为一体的流畅感。

Author: Max

Permalink: /archives/vim-guide

Published: 2026-03-26 21:31:42

Updated: 2026-03-26 21:30:12

License: 本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可

CATALOG