在 Linux 系统中,编辑器是不可或缺的工具。而 Vim 作为一款功能强大的多模式编辑器,凭借其高效的操作方式、强大的定制能力和跨平台特性,成为了 Linux 用户的首选编辑器之一。
一、为什么选择 Vim?
Vim(Vi Improved)是 Vi 编辑器的增强版本,不仅完全兼容 Vi 的所有指令,还新增了语法高亮、可视化操作、插件扩展等实用功能。与 Emacs 并称类 Unix 系统的两大编辑神器。
Vim 的核心优势:
-
极致效率:纯键盘操作,无需鼠标,编辑速度比普通编辑器快 30% 以上
-
跨平台支持:不仅可在 Linux 终端运行,还能在 Windows、macOS 等系统中使用
-
轻量化:安装包极小,启动速度毫秒级
-
可扩展性:通过插件可扩展为 IDE 级别的功能
-
服务器标配:几乎所有 Linux 服务器都默认安装 Vim,是远程开发的唯一选择
Vim 相比 Vi 的主要改进:
| 功能 | Vi | Vim |
|---|---|---|
| 语法高亮 | ❌ | ✅ 根据文件类型自动对关键字、注释等进行颜色区分 |
| 可视化操作 | ❌ | ✅ 支持块选择、可视化编辑 |
| 插件扩展 | ❌ | ✅ 支持丰富的第三方插件 |
| 多级撤销 | ❌ | ✅ 支持多次撤销与恢复 |
二、安装 Vim
CentOS 系统
bash
sudo yum install -y vim
安装完成后,可以通过 vim --version 查看版本信息。
三、Vim 的核心:三种模式
Vim 是模式化编辑器,不同模式下键盘的功能完全不同,这是 Vim 与"所见即所得"编辑器(如记事本、VS Code)的核心区别。
3.1 三大核心模式
| 模式 | 英文名称 | 进入方式 | 核心功能 |
|---|---|---|---|
| 普通模式 | Normal mode | 打开 Vim 默认进入,或按 Esc 返回 |
浏览文本、移动光标、复制、粘贴、删除等 |
| 插入模式 | Insert mode | 普通模式下按 i/a/o 等 |
文本输入 |
| 命令行模式 | Command-line mode | 普通模式下按 : |
文件保存、退出、查找、替换等 |
3.2 模式切换关系
bash
┌─────────────────┐
│ 普通模式 │
│ (默认启动) │
└────────┬────────┘
│
i/a/o ────────┘ └─────── Esc
↓ ↑
┌─────────────────────────────────┐
│ 插入模式 │
│ (文本输入) │
└─────────────────────────────────┘
普通模式 ── : ──→ 命令行模式

模式切换核心快捷键(必记):
-
普通模式 → 插入模式:
-
i:在光标前插入文本(最常用) -
I:在当前行首插入文本 -
a:在光标后插入文本 -
A:在当前行尾插入文本(高频) -
o:在当前行下方另起一行(高频) -
O:在当前行上方另起一行
-
-
任何模式 → 普通模式 :按
Esc键(推荐按两次确保返回) -
普通模式 → 命令行模式 :按
:键(shift+;)
黄金规则 :所有模式都能通过 Esc 键返回普通模式;普通模式是 Vim 的"核心模式",所有高级操作都必须从普通模式开始;插入模式仅用于输入文本,输入完成后立即返回普通模式。
四、普通模式常用命令集
普通模式是 Vim 最常用的模式,90% 的文本操作都在此模式下完成。
4.1 光标移动(脱离鼠标的关键)
基础移动(推荐使用 hjkl 代替方向键):
| 命令 | 功能 | 记忆技巧 |
|---|---|---|
h |
向左移动一个字符 | 左手最左按键 |
j |
向下移动一行 | 指向下方 |
k |
向上移动一行 | 指向上方 |
l |
向右移动一个字符 | 右手最右按键 |
高级移动:
| 命令 | 功能 |
|---|---|
w |
跳到下一个单词的开头 |
e |
跳到当前单词的结尾 |
b |
回到上一个单词的开头 |
^ |
移动到行首(第一个非空白字符) |
$ |
移动到行尾 |
gg |
移动到文件开头 |
G |
移动到文件结尾 |
nG |
移动到第 n 行(如 5G 到第 5 行) |
:n |
命令行模式跳转到第 n 行 |
翻页操作:
-
Ctrl + b:屏幕向"后"移动一页 -
Ctrl + f:屏幕向"前"移动一页 -
Ctrl + u:屏幕向"后"移动半页 -
Ctrl + d:屏幕向"前"移动半页
💡 提示 :方向键在 Vim 中可用但效率低下,坚持使用**hjkl** 一周会显著提升速度。
4.2 删除操作
| 命令 | 功能 |
|---|---|
x |
删除光标所在位置的一个字符 |
X |
删除光标所在位置"前面"的一个字符 |
#x |
删除光标所在位置"后面(包含自己)"的 # 个字符(如 6x) |
dd |
删除光标所在行 |
#dd |
从光标所在行开始删除 # 行 |
dw |
删除到单词末尾 |
d$ |
删除到行尾 |
4.3 复制与粘贴
| 命令 | 功能 |
|---|---|
yy |
复制光标所在行 |
#yy |
复制从光标所在行往下数 # 行(如 6yy) |
yw |
复制光标所在之处到字尾的字符 |
#yw |
复制 # 个字到缓冲区 |
p |
将缓冲区内容粘贴到光标所在位置 |
4.4 撤销与重做
| 命令 | 功能 |
|---|---|
u |
撤销上一次操作 |
Ctrl + r |
重做(撤销的恢复) |
4.5 替换
| 命令 | 功能 |
|---|---|
r |
替换光标所在处的字符 |
R |
连续替换光标所到之处的字符,直到按 Esc |
五、命令行模式常用命令集
在普通模式下按 : 进入命令行模式。
5.1 文件操作
| 命令 | 功能 |
|---|---|
:w |
保存文件 |
:q |
退出 Vim |
:q! |
强制退出(不保存) |
:wq |
保存并退出 |
:wq! |
强制保存并退出 |
5.2 查找与替换
| 命令 | 功能 |
|---|---|
/关键字 |
向后查找关键字(按 n 继续查找下一个) |
?关键字 |
向前查找关键字(按 n 继续查找) |
:set nu |
显示行号 |
:set nonu |
取消行号 |
5.3 其他实用命令
| 命令 | 功能 |
|---|---|
:!命令 |
执行 shell 命令(如 :!ls) |
:help |
查看帮助文档 |
六、Vim 配置:打造专属编辑器
Vim 的强大之处在于其高度可定制性。通过配置文件可以个性化你的编辑环境。
6.1 配置文件位置
-
系统级配置 :
/etc/vimrc(对所有用户有效) -
用户级配置 :
~/.vimrc(仅对当前用户有效)
推荐在用户主目录下创建 .vimrc 文件进行个性化配置。
6.2 常用配置选项
在 **~/.vimrc**中添加以下内容:
bash
" 基本设置
syntax on " 开启语法高亮[reference:53]
set nu " 显示行号[reference:54]
set shiftwidth=4 " 设置缩进空格数为 4
set tabstop=4 " Tab 键宽度为 4
set autoindent " 自动缩进
set expandtab " 用空格代替 Tab
" 搜索设置
set hlsearch " 高亮搜索结果
set incsearch " 实时显示搜索结果
" 编码设置
set encoding=utf-8 " 设置编码[reference:55]

6.3 插件管理
要配置更强大的 Vim,可以安装插件。推荐使用插件管理器如 vim-plug:
- 安装 vim-plug:
bash
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
- 在
~/.vimrc中配置插件:
vim
call plug#begin('~/.vim/plugged')
" 在这里添加插件
Plug 'preservim/nerdtree' " 文件浏览器
Plug 'vim-airline/vim-airline' " 状态栏美化
call plug#end()
- 在 Vim 中执行
:PlugInstall安装插件。
6.4 常用插件推荐
| 插件 | 功能 |
|---|---|
| NERDTree | 文件树浏览器 |
| vim-airline | 美化状态栏 |
| ctrlp.vim | 文件模糊搜索 |
| vim-surround | 快速添加/修改配对符号 |
vim一键部署
bash
git clone https://github.com/chxuan/vimplus.git ~/.vimplus
cd ~/.vimplus
./install.sh #不加sudo

