vi的三种模式及切换
-
命令模式(默认模式)
- 启动时自动进入:
vi 文件名(文件不存在则新建) - 功能:执行复制、粘贴、删除等命令,不可直接输入文本。
- 其他模式返回命令模式:按
ESC键
- 启动时自动进入:
-
插入模式(编辑文本)
- 从命令模式切换:
i:光标前插入a:光标后插入o:下一行插入
- 此模式下可自由输入/删除文本。
- 从命令模式切换:
-
末行模式(保存/退出/搜索)
- 从命令模式切换:按
- 功能:执行保存、退出、搜索替换等操作。
✅ 模式切换口诀:命令模式是中枢,
i/a/o进插入,ESC退回命令, 进入末行。
基础操作命令(命令模式下使用)
光标移动
h← /j↓ /k↑ /l→Ctrl + f:下一页Ctrl + b:上一页0:行首 / :行尾gg:文件首行 /G:文件末行50G:跳转到第50行
文本编辑
x:删除光标处字符dd:删除整行yy:复制当前行p:粘贴到光标后u:撤销操作 /Ctrl + r:重做r:替换单个字符(如r + a替换为a)
保存与退出(末行模式)
:w:保存文件:q:退出(未修改时):q!:强制退出(不保存修改):wq或:x:保存并退出:w 新文件名:另存为新文件
高效进阶技巧
搜索与替换
- 搜索(命令模式):
→ 按n下一个 /N上一个 - 替换(末行模式):
:%s/旧文本/新文本/g→ 全局替换
:10,20s/旧文本/新文本/g→ 替换10-20行
多文件操作
- 分屏编辑:
:sp 文件名(横向分屏) /:vsp 文件名(纵向分屏) - 切换窗口:
Ctrl + w + 方向键
显示设置(末行模式)
:set number:显示行号:set nonumber:隐藏行号:set paste:避免粘贴文本时自动缩进错乱
常见问题解决
-
卡在界面无法退出?
- 连续按
ESC确保回到命令模式,再输入:q!强制退出。
- 连续按
-
误操作后恢复文件?
- 使用
:e!放弃修改并重新加载文件。
- 使用
-
粘贴文本格式错乱?
- 先执行
:set paste再粘贴,结束后:set nopaste。
- 先执行
学习建议
- 必练命令:
i、ESC、:wq、dd、yy/p、/搜索 - 练习环境:终端输入
vimtutor启动官方教程(约30分钟)。 - 提示:操作前备份文件,避免误操作丢失数据。
💡 为什么vi值得学?
- 无需图形界面,SSH远程操作必备
- 执行速度极快,资源占用低
- 熟练后编辑效率远超普通编辑器
引用说明: 参考Linux官方文档(vim.org)、IBM开发者社区《Vi编辑器指南》及《Linux命令行与Shell脚本编程大全(第4版)》(Richard Blum, Christine Bresnahan著),确保信息专业可靠,操作验证环境:Ubuntu 22.04、CentOS 7。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7195.html