v3.8.313
1275 字
6 分钟
编辑器VI及VIM
本操作指导针对vi/vim编辑器的日常操作进行梳理
该编辑器共有两种模式:查看模式 与 编辑模式
基础方法
- 文件日常操作
:w # 保存文件:q # 退出查看模式:q! # 强制退出查看模式:wq! # 强制保存并退出查看模式- 日常多文档操作
vim . # 进入当前文件夹选择好目标文件Enter进入编辑模式:tabe . # 开启多文档模式进入当前目录选择目标文件gt # 切换文档分页至上一篇文档(左)gT # 切换文档分页至下一篇文档(右)- 垂直移动
0 # 跳转到行首gg # 跳转至当前文档最顶部G # 跳转至当前文档最底部h # 向左移动光标j # 向下移动光标k # 向上移动光标l # 向右移动光标) # 移动到下一段句尾} # 移动到下一段段尾( # 移动到上一句句首{ # 移动到上一段段首Ctrl + u # 向上滚动半屏(类似pageup)Ctrl + d # 向下滚动半屏(类似pagedown)Ctrl + i # 跳转到下一次修改(含文件跳转)Ctrl + o # 跳转到上一次修改(含文件跳转)Ctrl + e # 向下滚动背景板(不含光标)Ctrl + y # 向上滚动背景板(不含光标)- 平行移动
^ # 跳转到整行行头$ # 跳转到整行行尾e # 将光标移动到下一段句尾w # 将光标移动到下一段句首b # 将光标移动到上一段句首fa # 将光标移动到下一个为a的字符处ta # 将光标移动到下一个为a的字符前一格Fa # 将光标移动到上一个为a的字符处Ta # 将光标移动到上一个为a的字符后一格编辑方法
- 精准插入
# 首先按ESC键确保当前状态为查看模式a # 在当前光标的后方进入编辑模式i # 在当前光标的位置进入编辑模式o # 在当前光标的下方进入编辑模式s # 取代当前光标字符并进入编辑模式- 创作式插入
O # 在当前光标的上一行进入编辑模式A # 在当前光标的行尾进入编辑模式I # 在当前光标的行首进入编辑模式S # 取代当前光标所在的整行字符并进入编辑模式- 剪切复制与粘贴
# 确认已经使用Esc切换到查看模式dd # 定义为删除或剪切yy # 定义为复制P # 定义为粘贴当前行,光标下移p # 定义为粘贴当前行,光标上移- 首航缩进
>> # 相当于TAB键缩进<< # 相当于反响缩进替换方法(仅针对临时改写)
- 精准插入高级用法
c^ # 替换光标处到开头的字符(不含光标处)c$ # 替换光标处到结尾的字符cw # 替换光标处一个单词cf" # 光标位于引号内,并替换到下一个引号内的字符- 进入替换模式
R # 在当前字符下进入替换模式# 按ESC键可以退出替换模式- 前进与返回
# 按ESC键确保自身当前所处的模式. # 定义为前进,会复制粘贴一遍最新编辑模式下编辑的内容u # 定义为返回Ctrl + r # 定义为恢复返回的内容U # 定义为恢复单行进入编辑模式前的状态- 数字的递增与递减
Ctrl + a # 在光标处于数字上进行递增Ctrl + x # 在光标处于数字上进行递减进阶方法
- 查找字段
:/type # 搜索名称为type的字段n # 跳转到下一个type字段的行N # 跳转到上一个type字段的行:nohl # 清空查找字段- 选取字段
viw # 内部递增选取vaw # 字符递增选取va{ # 选取段落ggVG # 快速全选V3j # 向下快速选取3行# "message" 选取示例vi" # 选取messageva" # 选取"message"# (message) 选取示例vi( # 选取messageva( # 选取(message)# <title>message</title>vit # 选取messagevat # 选取<title>message</title># 以上命令可以配合c替换y复制d剪切p粘贴使用ESCx2 # 取消选取- 巨集录制与执行
qq0ESCA.comESC0jq # 批量在每行结尾加上.com字符qq0ESCIwww.ESC0jq # 录制在每行的开头加上www.字符@q # 执行一次录制巨集8@@ # 执行8次已执行的录制巨集- 批量替换
:/con # 搜索con字段N # 回到当前搜索位置cgn # 替换当前位置字段内容configESC # 将搜索内容替换为config. # 执行批量替换u # 回退批量替换