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)" 即可满足基础需求,复杂操作(如替换、查找)可逐步熟悉。

相关推荐
安卓开发者3 小时前
使用Docker轻松搭建WordPress博客:完整指南
运维·docker·容器
电商API_180079052473 小时前
微店常用API:获取商品详情接口|关键字搜索商品接口|获取快递费接口-打通商品运营与用户体验的技术桥梁
大数据·服务器·人工智能·爬虫·数据挖掘
---学无止境---3 小时前
Linux中系统调用sys_mount函数的实现
linux
黑马金牌编程3 小时前
tcpdump 常用命令及参数解析
linux·网络·tcpdump·网络抓包
潇I洒3 小时前
Linux写sh开机启动脚本-bash报错的两种解决方法
java·linux·bash
上海云盾第一敬业销售3 小时前
高防CDN如何确保电商平台在购物节期间运转如常
安全·游戏·ddos
好记忆不如烂笔头abc3 小时前
ob恢复租户报错result: -4184(Server out of disk space)
运维·服务器
孙同学要努力3 小时前
《Linux篇》进程/虚拟地址空间
linux·运维·服务器
zhilin_tang3 小时前
揭开Linux跨平台 adb调试原理神秘面纱
android·linux