一、什么是 Vim?
Vim(Vi IMproved)是 Vi 编辑器的增强版本,是 Linux/Unix 下最常见的文本编辑器之一,具有如下特点:
- 支持多模式编辑
- 支持插件扩展
- 支持语法高亮、自动缩进
- 操作全键盘化,极度高效
安装 Vim:
# Debian/Ubuntu 系统
sudo apt install vim
# Red Hat/CentOS 系统
sudo yum install vim
二、Vim 三大模式详解
Vim 有三个主要模式,分别是:
- 普通模式(Normal Mode):用于浏览、删除、复制、粘贴等操作
- 插入模式(Insert Mode):用于输入文本
- 命令模式(Command Mode):用于保存、退出、查找、替换等
模式切换逻辑:
+----------------+
| 命令模式 |
| 输入 :wq 等 |
+----------------+
^
|
Esc
|
v
+----------------+
| 普通模式 (默认)|
| 浏览/编辑指令 |
+----------------+
^
|
i/a/o
|
v
+----------------+
| 插入模式 |
| 正常输入文本 |
+----------------+
三、Vim 常用命令速查表
1. 启动与退出
| 操作 | 命令 |
|---|---|
| 启动编辑文件 | vim filename |
| 保存文件 | :w |
| 退出 Vim | :q |
| 保存并退出 | :wq or ZZ |
| 强制退出 | :q! |
2. 插入模式切换
| 命令 | 功能 |
|---|---|
i | 当前光标前插入 |
a | 当前光标后插入 |
o | 新起一行插入 |
I | 行首插入 |
A | 行尾插入 |
3. 普通模式编辑操作
| 命令 | 功能 |
|---|---|
dd | 删除整行 |
yy | 复制整行 |
p | 粘贴到下一行 |
u | 撤销 |
Ctrl + r | 重做 |
/word | 向下搜索 word |
:%s/old/new/g | 全局替换 |
四、可视模式与批量注释操作
可视模式(Visual Mode)介绍:
| 操作 | 命令 |
|---|---|
| 进入字符选择 | v |
| 进入行选择 | V |
| 进入块选择(列模式) | Ctrl + v |
批量注释操作(如 C 语言中的 //):
- 进入块选择模式
Ctrl + v - 使用上下键选中多行
- 输入
Shift + i输入注释符号// - 然后按
Esc,Vim 会自动在每一行前插入//
示例效果:
Before:
int a = 1;
int b = 2;
int c = 3;
After:
int a = 1; //
int b = 2; //
int c = 3; //
五、窗口与标签操作(多文件编辑)
多窗口编辑
:split file2.c # 水平分屏
:vsplit file3.c # 垂直分屏
Ctrl + w + w # 窗口之间切换
多标签操作(tab)
:tabnew # 新建标签页
gt # 下一个标签页
gT # 上一个标签页
:tabclose # 关闭标签页
六、Vim 插件推荐
插件管理工具推荐:vim-plug
- 安装 vim-plug:
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
- 编辑
~/.vimrc添加插件:
call plug#begin('~/.vim/plugged')
Plug 'preservim/nerdtree'
Plug 'vim-airline/vim-airline'
Plug 'junegunn/fzf.vim'
Plug 'ycm-core/YouCompleteMe'
call plug#end()
- 安装插件: 打开 Vim 输入命令:
:PlugInstall
插件功能简述:
| 插件名 | 说明 |
|---|---|
| NERDTree | 树形目录浏览 |
| vim-airline | 状态栏美化 |
| fzf.vim | 文件模糊查找 |
| YouCompleteMe | 自动补全引擎 |
| vim-surround | 快速修改引号、括号 |
| auto-pairs | 自动括号闭合 |
七、个性化 Vim 配置推荐
编辑 ~/.vimrc:
set number " 显示行号
syntax on " 启用语法高亮
set tabstop=4 " 设置 Tab 宽度
set expandtab " 将 Tab 转为空格
set shiftwidth=4 " 设置缩进宽度
set autoindent " 自动缩进
set relativenumber " 显示相对行号
set clipboard=unnamedplus " 共享系统剪贴板
八、结语
Vim 是一款'易学难精'的编辑器,初期上手门槛略高,但一旦掌握后将极大提升你在文本编辑与编码过程中的效率。掌握模式切换、配合插件使用,再配合一些个性化设置,Vim 将成为你高效开发的利器。

