Vim编辑器完全指南
一、什么是Vim
Vim = Vi IMproved,是Vi的升级版本,是一个多模式文本编辑器。
简单理解:Vim是Linux终端里的"高级记事本",支持语法高亮、可视化操作,可以在终端、Windows、Mac等平台运行。
vi vs vim
| 对比 | vi | vim |
|---|---|---|
| 关系 | 基础版 | vi的升级版 |
| 特性 | 基础编辑功能 | 兼容vi + 语法高亮、可视化等增强功能 |
二、三大核心模式
| 模式 | 名称 | 核心功能 | 如何进入 |
|---|---|---|---|
| 命令模式 | Normal mode | 移动光标、删除、复制、粘贴 | 默认进入 / 按ESC |
| 插入模式 | Insert mode | 输入/编辑文字 | 按i、a、o |
| 末行模式 | Last line mode | 保存文件、退出、查找、替换 | 命令模式下按: |
提示:Vim一共有12种模式,但掌握这3种就能完成90%的工作。
模式切换图
启动Vim
↓
┌──────────────┐
│ 命令模式 │ ←─────────┐
│ (Normal mode) │ │
└──────┬───────┘ │
│ 按 i/a/o │ 按 ESC
↓ │
┌──────────────┐ │
│ 插入模式 │ ──────────┘
│ (Insert mode) │
└───────────────┘
│
│ 按 :
↓
┌──────────────┐
│ 末行模式 │
│ (Last line) │
└──────────────┘
三、命令模式操作大全
3.1 光标移动
| 按键 | 作用 | 按键 | 作用 |
|---|---|---|---|
h / j / k / l |
左 / 下 / 上 / 右 | gg |
跳到文件开头 |
w |
跳到下个单词开头 | G (Shift+g) |
跳到文件末尾 |
e |
跳到单词结尾 | ^ |
跳到行首 |
b |
跳到上个单词开头 | $ |
跳到行尾 |
Ctrl+f |
向下翻一页 | Ctrl+b |
向上翻一页 |
Ctrl+d |
向下翻半页 | Ctrl+u |
向上翻半页 |
3.2 删除操作
| 按键 | 作用 |
|---|---|
x |
删除光标所在字符 |
#x |
删除光标后#个字符(如6x删除6个) |
X |
删除光标前一个字符 |
#X |
删除光标前#个字符 |
dd |
删除光标所在整行 |
#dd |
从光标行开始删除#行 |
3.3 复制粘贴
| 按键 | 作用 |
|---|---|
yy |
复制光标所在行 |
#yy |
复制从光标开始的#行 |
yw |
复制光标到单词结尾 |
#yw |
复制#个字 |
p |
在光标后粘贴 |
P |
在光标前粘贴 |
3.4 撤销与恢复
| 按键 | 作用 |
|---|---|
u |
撤销上一步操作 |
Ctrl+r |
恢复被撤销的操作 |
3.5 替换
| 按键 | 作用 |
|---|---|
r |
替换光标处单个字符 |
R |
连续替换模式(覆盖),按ESC结束 |
3.6 跳转到指定行
| 按键 | 作用 |
|---|---|
Ctrl+g |
显示当前行号 |
#G |
跳转到第#行(如15G跳转到第15行) |
四、插入模式进入方式
| 按键 | 作用 |
|---|---|
i |
在光标当前位置开始插入 |
a |
在光标下一个位置开始插入 |
o |
在下一行新开一行开始插入 |
I |
跳到行首开始插入 |
A |
跳到行尾开始插入 |
O |
在上一行新开一行开始插入 |
按
ESC键从插入模式返回命令模式。
五、末行模式常用命令
5.1 文件操作
| 命令 | 作用 |
|---|---|
:w |
保存文件 |
:q |
退出Vim |
:wq |
保存并退出 |
:q! |
强制退出(不保存) |
:x |
保存并退出(等同于:wq) |
5.2 行号操作
| 命令 | 作用 |
|---|---|
:set nu |
显示行号 |
:set nonu |
隐藏行号 |
:# |
跳转到第#行(如:15跳转到第15行) |
5.3 查找功能
| 命令 | 作用 |
|---|---|
/关键词 |
向下搜索关键词 |
?关键词 |
向上搜索关键词 |
n |
重复搜索(下一个匹配) |
N |
反向重复搜索(上一个匹配) |
问题 :
/和?的区别?
/:向下搜索(从光标位置向后)?:向上搜索(从光标位置向前)
5.4 替换功能
| 命令 | 作用 |
|---|---|
:s/old/new |
替换当前行第一个old |
:s/old/new/g |
替换当前行所有old |
:%s/old/new/g |
替换整个文件所有old |
:%s/old/new/gc |
替换前逐个确认 |
六、Vim配置
配置文件位置
| 级别 | 路径 | 作用范围 |
|---|---|---|
| 全局配置 | /etc/vimrc |
所有用户 |
| 用户配置 | ~/.vimrc |
当前用户(推荐自定义) |
常用配置选项(在~/.vimrc中添加)
vim
syntax on " 开启语法高亮
set nu " 显示行号
set shiftwidth=4 " 设置缩进空格数为4
set tabstop=4 " Tab键宽度为4个空格
set expandtab " 将Tab转换为空格
set autoindent " 开启自动缩进
插件配置(进阶)
可以安装TagList、WinManager等插件增强Vim功能。
七、新手快速上手(10个必记命令)
| 序号 | 操作 | 命令 |
|---|---|---|
| 1 | 进入编辑模式 | i |
| 2 | 保存文件 | :w |
| 3 | 退出Vim | :q |
| 4 | 保存并退出 | :wq 或 :x |
| 5 | 不保存强制退出 | :q! |
| 6 | 删除整行 | dd |
| 7 | 复制整行 | yy |
| 8 | 粘贴 | p |
| 9 | 撤销 | u |
| 10 | 查找 | /关键词 |
八、常见问题与解决
| 问题 | 解决方法 |
|---|---|
| 不知道怎么输入文字 | 按i进入插入模式 |
| 按了半天没反应 | 可能在其他模式,按ESC回到命令模式 |
| 不知道怎么退出 | ESC → :q! 强制退出 |
| 不小心改错了文件 | ESC → :q! 不保存退出 |
| 想删除整行 | 命令模式下按dd |
| 撤销错了 | Ctrl+r 恢复 |
九、核心要点总结
┌─────────────────────────────────────────────────────────────┐
│ Vim 核心三要素 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 三种模式:命令模式 + 插入模式 + 末行模式 │
│ │
│ 两个切换:i 进入插入,ESC 返回命令 │
│ │
│ 一个原则:在正确的模式下做正确的操作 │
│ │
└─────────────────────────────────────────────────────────────┘
学习建议:在终端输入
vimtutor,这是一个30分钟的交互式教程,是最好的Vim入门方式。