【Linux】Vim编辑器:从入门到高效使用
目录
- 🚀前言
- 🤔Vim编辑器简介
- ☘️Vim的三大模式
- 💯模式切换的快捷键
- 🌟Vim的常用命令
- 💯命令模式
- 💯编辑模式
- 💯退出模式
- 🐧持久化设置
- 💯为什么需要“持久化”?
- 💯实现方式:编辑 Vim 配置文件
- 💯临时 vs 持久化
- 💯进阶技巧
- 💻官方入门教程
🚀前言
大家好!我是 EnigmaCoder。
- 本文将介绍Vim编辑器的三大模式及其常见的命令,同时也介绍持久化设置和官方入门教程。
🤔Vim编辑器简介
Vim
是Linux
系统中广泛使用的一款高效文本编辑器,作为vi
编辑器的升级版本,它不仅能实现基本的文件查看、编辑和保存功能,还新增了语法高亮显示和语法检测等实用特性。
Vim
的优点:- 极致高效的模块化编辑,摆脱鼠标依赖。
- 轻量化与全场景适配,是跨场景文本处理的“万能工具”。
- 成熟生态与兼容性,学习成本和使用成本低。
☘️Vim的三大模式
- 命令模式:可以实现基础的复制、粘贴、删除内容以及页面跳转操作。
- 编辑模式/插入模式:可以编辑文本的内容、进行增删改操作。
- 退出模式/末行模式:可以保存文件或另存为文件。
💯模式切换的快捷键
- 从命令模式切换到编辑模式:
快捷键 | 说明 |
---|---|
i | 在 光标所在处 切换到编辑模式 |
a | 在光标后面 一个字符切换到编辑模式 |
o | 在光标所在行的下一行 切换到编辑模式 |
s | 删除光标所在处 的字符切换到编辑模式 |
I | 在光标所在行的最前面 切换到编辑模式 |
A | 在光标所在行的最后面 切换到编辑模式 |
O | 在光标所在处的上一行 切换到编辑模式 |
S | 删除光标所在行的整行内容 切换到编辑模式 |
- 从命令模式切换到退出模式:
Shift :
组合键 - 从退出模式/插入模式切换到命令模式:
ESC
键
打开文件默认进入命令模式,编辑模式和退出模式无法直接切换,中间必须经过命令模式。
🌟Vim的常用命令
💯命令模式
命令模式下的常用命令:
命令 | 功能描述 |
---|---|
yy | 复制当前光标所在的行 |
P | 在光标所在行的下一行 进行粘贴 |
p | 在光标所在行的上一行 进行粘贴 |
dd | 删除光标所在行整行 的内容 |
dG | 删除光标所在行及其后面 的所有内容 |
nG (n 表示数字) | 跳转到第n 行内容 |
G | 跳转到最后一行 |
gg | 跳转到文件的第一行 |
x | 删除光标所在处的单个字符 |
u | 撤销 上一个操作 |
/关键字 | 可以匹配关键字,输入'n' 进行下一个关键字的跳转,输入'N' 跳转到上一个关键字 |
这些命令用于实现光标快速移动、文本编辑(删/复/粘/改)、调用行命令及切换其他模式,是Vim高效操作的核心指令。
💯编辑模式
编辑模式下的常用命令:
命令 | 功能描述 |
---|---|
退出编辑模式 | |
Esc 或 Ctrl + [ | 退出编辑模式,返回命令模式(最常用) |
Ctrl + c | 功能同 Esc ,退出编辑模式(部分环境可能有差异) |
文本删除 | |
Ctrl + h | 删除光标前的一个字符(相当于退格键 Backspace ) |
Ctrl + w | 删除光标前的一个单词(以空格、标点等为分隔符) |
Ctrl + u | 删除从光标位置到行首的所有内容 |
临时执行命令模式命令 | |
Ctrl + o | 临时进入命令模式,执行一个命令后自动返回编辑模式(如快速保存 :w ) |
插入特殊字符 | |
Ctrl + v | 插入特殊字符(如 Ctrl + v + Enter 插入换行符 ^M ,Ctrl + v + 065 插入 A ) |
自动补全 | |
Ctrl + x + Ctrl + f | 补全文件名 |
Ctrl + x + Ctrl + l | 补全整行(基于当前文件已有内容) |
Ctrl + x + Ctrl + n | 补全当前文件中出现过的单词 |
Ctrl + x + Ctrl + k | 补全字典中的单词(需配置字典路径) |
缩进调整 | |
Ctrl + t | 编辑模式下,将当前行向右缩进(增加缩进) |
Ctrl + d | 编辑模式下,将当前行向左缩进(减少缩进) |
这些命令主要用于在编辑模式下高效编辑文本,减少切换到命令模式的频率。如果需要更复杂的操作(如批量替换、行跳转等),通常还是需要切换到命令模式执行。
💯退出模式
退出模式下的命令:
命令 | 功能描述 |
---|---|
基础跳转/定位 | |
:n (n 为数字) | 跳转到第 n 行 |
:1 | 跳转到第 1 行(等效普通模式 gg ) |
:$ | 跳转到最后一行(等效普通模式 G ) |
保存与退出 | |
:w 路径 | 将当前文件另存为指定路径(如 :w ~/backup.txt ) |
:w! | 强制保存(忽略只读属性,需系统权限) |
:wq | 保存并退出(写入+退出) |
:x | 保存并退出(同 :wq ,但文件无修改时不更新修改时间) |
:q | 正常退出(文件无修改时生效,否则拒绝退出) |
:q! | 强制退出,丢弃未保存修改 |
内容操作 | |
:%d | 清空当前文件所有内容 |
:s/旧/新/ | 替换当前行第一个匹配项(不加 g ) |
:s/旧/新/g | 替换当前行所有匹配项 |
:s/旧/新/gi | 替换当前行所有匹配项,忽略大小写(i = ignore case) |
:%s/旧/新/g | 替换整个文件所有匹配项 |
:%s/旧/新/gi | 全局替换+忽略大小写 |
:s#旧#新#g | 用 # 作分隔符(避免与路径中 / 冲突,如 :s#/old#/new#g ) |
系统交互与扩展 | |
:!命令 | 执行系统命令(如 :!ls 查目录、:!gcc % 编译当前文件) |
窗口/分屏 | |
:split 文件名 | 水平分屏打开文件(无文件名则分屏当前文件) |
:vsplit 文件名 | 垂直分屏打开文件 |
:close | 关闭当前分屏窗口 |
缓冲区管理 | |
:bnext | 切换到下一个缓冲区(已打开的其他文件) |
:bprev | 切换到上一个缓冲区 |
:bd | 删除当前缓冲区(关闭文件,不退出 Vim) |
设置类(临时生效) | |
:set number | 显示行号 |
:set nonumber | 关闭行号 |
:set hlsearch | 高亮搜索匹配结果(如 /关键字 后,匹配项高亮) |
:set nohlsearch | 关闭搜索高亮 |
:set shiftwidth=4 | 设置自动缩进宽度为 4 个空格(需配合 expandtab 更规范) |
:set expandtab | 将 Tab 键 输入转为空格(需结合 shiftwidth 定义空格数) |
- 持久化设置:若需永久生效,需修改
~/.vimrc
配置文件(如set number
加入配置)。- 分隔符灵活用:替换命令的分隔符可换为
#
或@
(如:s@old@new@g
),避免与关键字冲突。
🐧持久化设置
在 Vim 中,持久化设置 指让配置(如行号显示、缩进规则等)永久生效,而非仅当前会话有效。以下是核心原理和实现方法:
💯为什么需要“持久化”?
临时设置(如 :set number
)仅对当前 Vim 窗口有效,关闭后就会重置。如果想让配置“记住”你的习惯(比如每次打开都显示行号、Tab 自动转空格),就需要 持久化配置。
💯实现方式:编辑 Vim 配置文件
Vim 会自动加载用户目录下的 .vimrc
文件(隐藏文件),将设置命令写入该文件,即可实现“启动即生效”。
- 配置文件位置
系统 | 配置文件路径 | 说明 |
---|---|---|
Linux/Mac | ~/.vimrc (用户主目录下) | 仅对当前用户生效 |
Windows | C:\Users\你的用户名\_vimrc | 需手动创建(若不存在) |
- 编辑配置文件的步骤
以 Linux/Mac 为例(Windows 操作类似):
-
打开配置文件:在终端或 Vim 中执行
vim ~/.vimrc
如果文件不存在,Vim 会自动新建。
-
添加持久化设置:
在文件中写入需要永久生效的命令,每行一条。例如:" 显示行号(引号开头是注释,方便记录) set number " Tab 按一下,自动插入 4 个空格(规范缩进) set expandtab set shiftwidth=4 " 搜索时实时高亮匹配结果 set hlsearch set incsearch " 显示光标所在行列号 set ruler
-
保存退出:按
:wq
保存并退出 Vim。 -
立即生效:下次启动 Vim 时,配置会自动加载;也可通过
:source ~/.vimrc
命令,无需重启 直接应用新配置。
💯临时 vs 持久化
操作 | 作用范围 | 重启后是否保留 |
---|---|---|
:set number | 仅当前 Vim 窗口 | ❌ 不保留 |
写入 .vimrc | 所有新启动的 Vim 窗口 | ✅ 永久保留 |
💯进阶技巧
-
注释配置:用
"
开头写注释,方便整理配置逻辑:" 【缩进相关】 set expandtab " Tab → 空格 set shiftwidth=4 " 自动缩进 4 个空格
-
覆盖系统配置:
系统级配置文件(如/etc/vim/vimrc
)会先加载,再加载用户的~/.vimrc
。用户配置优先级更高,可覆盖系统默认设置。 -
恢复默认:
- 临时关闭:执行
:set nonumber
(仅当前会话); - 永久关闭:删除
.vimrc
里的set number
行(需重启或:source
生效)。
- 临时关闭:执行
简单来说:把临时生效的
:set xxx
命令“抄”进.vimrc
,就能让配置“永远记住”你的习惯 。如果想定制更复杂的 Vim 环境(比如主题、快捷键),.vimrc
也是核心入口。
💻官方入门教程
在 Linux
中练习 Vim
,可以选择优先从官方自带的交互式教程入手,它是 Vim
自带的免费教程,分 8
个章节,从基础光标移动、编辑到保存退出, step-by-step
引导,适合纯新手。
- 启动命令:直接在 Linux 终端输入
vimtutor
按照教程提示,在
Vim
内直接操作(教程会教你如何移动、删除、修改文本),完成所有章节后,能掌握70%
的日常基础操作。