Linux中,vi(vim)编辑器大部分快捷键

vi 编辑器是 Linux 系统中最常用的文本编辑器之一,核心特点是分为命令模式 (默认进入模式,用于执行操作命令)和插入模式(用于输入文本),所有快捷键均需在命令模式下使用。以下按功能分类整理常用快捷键,结构清晰且标注详细用途。

一、模式切换快捷键(核心基础)

vi 的所有操作依赖模式,必须先掌握模式切换,否则快捷键无法生效。

快捷键 操作说明 适用场景
i 命令模式 进入插入模式,光标位置不变 需在当前光标前直接输入文本时使用
I 命令模式 进入插入模式 ,光标跳转至当前行的行首 需在一行开头输入内容(如行首加注释)时使用
a 命令模式 进入插入模式 ,光标跳转至当前字符的后一位 需在光标后补充内容(如修正漏输字符)时使用
A 命令模式 进入插入模式 ,光标跳转至当前行的行尾 需在一行末尾追加内容(如补全语句)时使用
o 命令模式 进入插入模式 ,在当前行的下方新建一行 需在当前行下新增内容(如换行写新代码)时使用
O 命令模式 进入插入模式 ,在当前行的上方新建一行 需在当前行上插入内容(如补充前置说明)时使用
Esc 插入模式 退回命令模式 输入完文本后,需执行保存、删除等操作时必须按此键

二、光标移动快捷键(高效定位)

命令模式下,无需鼠标即可快速移动光标,分为 "基础移动" 和 "快速跳转" 两类。

1. 基础移动(逐字符 / 逐行)
快捷键 操作说明
h 光标向左移动 1 个字符(对应键盘左箭头)
j 光标向下移动 1 行(对应键盘下箭头)
k 光标向上移动 1 行(对应键盘上箭头)
l 光标向右移动 1 个字符(对应键盘右箭头)
0(数字零) 光标跳转至当前行的行首 (比按多次h更高效)
$ 光标跳转至当前行的行尾 (比按多次l更高效)
2. 快速跳转(跨行 / 跨文件)
快捷键 操作说明 示例
nG 光标跳转至第n行(n为数字,如5G跳转到第 5 行) 编辑代码时,需快速定位到指定行号(如报错行)
G 光标跳转至文件最后一行 查看文件末尾内容(如日志的最新记录)
gg 光标跳转至文件第一行 从文件中间快速回到开头
w 光标向后跳转 1 个单词(以空格 / 标点分隔) 快速浏览英文文档或代码变量
b 光标向前跳转 1 个单词 回退查看上一个单词
Ctrl + f 屏幕向下滚动 1 屏(类似 "翻下页") 查看长文件时快速向下翻页
Ctrl + b 屏幕向上滚动 1 屏(类似 "翻上页") 查看长文件时快速向上翻页

三、文本编辑快捷键(删除 / 复制 / 粘贴)

命令模式下的核心编辑操作,无需进入插入模式即可完成文本修改。

1. 删除操作(d = delete)
快捷键 操作说明 示例
x 删除光标所在位置的 1 个字符 修正单个错字(如把 "teh" 改为 "the",删除 "e" 后补 "h")
nx 删除光标所在位置向后的 n 个字符n为数字,如3x删 3 个字符) 删除连续错字(如 "abc123" 中删 "123",按3x
dd 删除光标所在的整行 删除无用行(如空行、错误代码行)
ndd 删除光标所在行向下的 n 行n为数字,如5dd删 5 行) 批量删除多行内容(如删除一段无用代码)
d0 删除光标所在位置到行首的所有字符 清除行首到光标前的内容(如删除行首多余空格)
d$ 删除光标所在位置到行尾的所有字符 清除光标后到行尾的内容(如删除行尾多余字符)
dw 删除光标所在位置向后的 1 个单词 删除错误的变量名或英文单词
2. 复制操作(y = yank,意为 "复制")
快捷键 操作说明 示例
yy 复制光标所在的整行 复制一行代码或文本,后续粘贴
nyy 复制光标所在行向下的 n 行n为数字,如3yy复制 3 行) 批量复制多行内容(如复制一段函数代码)
y0 复制光标所在位置到行首的所有字符 复制行首到光标前的内容(如复制行首注释)
y$ 复制光标所在位置到行尾的所有字符 复制光标后到行尾的内容(如复制行尾的变量)
yw 复制光标所在位置向后的 1 个单词 复制单个变量名或英文单词
3. 粘贴操作(p = put,意为 "粘贴")
快捷键 操作说明 适用场景
p 将复制的内容粘贴到光标所在行的下方 复制一行后,在下方插入该内容
P 将复制的内容粘贴到光标所在行的上方 复制一行后,在上方插入该内容

四、文件保存与退出快捷键(操作收尾)

所有保存、退出操作均需在命令模式下执行,需先按Esc确保退出插入模式。

快捷键 操作说明 注意事项
:w 保存当前文件(不退出 vi) 编辑过程中定期保存,避免内容丢失
:w 文件名 将当前内容另存为 指定文件名(如:w test.txt 需保存副本或重命名文件时使用
:q 退出 vi(仅当文件未修改或已保存时生效) 若文件未保存,执行此命令会提示 "E37: 已修改但尚未保存"
:q! 强制退出 vi(不保存未修改的内容) 确认放弃当前修改时使用,谨慎操作
:wq 保存当前文件并退出 vi(等同于:x 编辑完成后常用的 "保存并退出" 命令
ZZ (大写 Z 连按两次)快速保存并退出 vi 命令模式下直接按,比输入:wq更高效

五、其他实用快捷键(查找 / 替换 / 撤销)

1. 文本查找
快捷键 操作说明 示例
/关键词 从光标位置向后查找 指定关键词(如/error查找 "error") 查找日志中的错误信息、代码中的变量
?关键词 从光标位置向前查找 指定关键词(如?test查找 "test") 从当前位置回退查找内容
n 继续查找下一个匹配的关键词(与/?方向一致) 找到一个匹配后,按n跳转到下一个
N 继续查找上一个匹配的关键词(与/?方向相反) 找到一个匹配后,按N回退到上一个
2. 文本替换(需输入命令,格式::[范围]s/旧内容/新内容/选项
命令 操作说明 示例
:s/旧/新 仅替换当前行的第一个 "旧内容" 当前行有多个 "abc",仅替换第一个为 "def"::s/abc/def
:s/旧/新/g 替换当前行 的所有 "旧内容"(g=global,全局) 当前行所有 "abc" 替换为 "def"::s/abc/def/g
:%s/旧/新 替换整个文件的第一个 "旧内容" 全文件第一个 "error" 替换为 "warning"::s/error/warning
:%s/旧/新/g 替换整个文件的所有 "旧内容" 全文件所有 "abc" 替换为 "123"::%s/abc/123/g
:n1,n2s/旧/新/g 替换第 n1 行到第 n2 行的所有 "旧内容" 替换第 5-10 行的 "test" 为 "demo"::5,10s/test/demo/g
3. 撤销与恢复
快捷键 操作说明 示例
u 撤销上一步操作(类似 Windows 的Ctrl+Z 误删一行后,按u可恢复该行
Ctrl + r 恢复上一步被撤销的操作(即 "反撤销") 撤销后发现操作正确,按Ctrl+r恢复

总结

vi 快捷键的核心是 "命令模式优先",需牢记先按 Esc 退插入模式,再执行快捷键。日常使用中,重点掌握 "模式切换(i/Esc)、光标移动(h/j/k/l/gg/G)、编辑(dd/yy/p)、保存退出(:wq/ZZ)" 即可满足基础需求,复杂操作(如替换、查找)可逐步熟悉。

相关推荐
月明长歌20 小时前
【码道初阶】【LeetCode 110】平衡二叉树:如何用一个“Magic Number”将复杂度从O(N²)降为 O(N)?
linux·算法·leetcode
专家大圣20 小时前
摆脱局域网束缚!Neko+cpolar 让跨网共享成日常
服务器·网络·docker·内网穿透·cpolar
二哈喇子!20 小时前
openFuyao 容器平台快速入门:Nginx 应用部署全流程实操
运维·nginx·openfuyao
齐鲁大虾20 小时前
国产 Linux 系统核心优缺点与适用场景
linux·运维·服务器
雨大王51220 小时前
工业生产执行系统(MES)在汽车制造行业的应用案例
运维·人工智能
小鹿学程序20 小时前
FileZilla连接到虚拟机
java·服务器·开发语言
skywalk816320 小时前
webvm 用浏览器启动的虚拟环境
linux·wasm
Awkwardx20 小时前
Linux网络编程—数据链路层
linux·运维·网络
揪住海21 小时前
UDP网络巩固知识基础题(1)
网络·udp
树下水月21 小时前
docker 启动后 如何通过对应的进程 找docker-compose.yaml 编排文件
运维·docker·容器