vi 文件名
打开文件/新建文件 如果存在打开 如果不存在 新建并打开
vi 文件名 +行数
打开文件光标定位在的某一行 不写行数 直接定位在文件末尾
异常处理
文件编辑未保存被强行退出后,vi会自动保存一个.文件名.swp(交换文件)
D删除交换文件,修改丢失,R恢复则文件回归
三种工作模式
打开文件→命令模式→:→末行模式→可以关闭文件/wq→保存关闭
打开文件→命令模式→i→编辑模式→可以编辑文件
末行模式/编辑模式→esc→命令模式
末行模式命令
w保存 q退出 q!强行退出不保存 wq保存退出 x保存退出
命令模式命令
重复次数:
数字+命令一个命令重复多少遍
移动选择:
字符移动
h左j下k上l右
行内移动
w(word)向后移动一个单词 b(back) 向后移动一个单词
0行首 ^行首不包括空白字符 $行尾
行数移动(go)
gg 文件顶部 G文件末尾 数字gg/ 数字
屏幕移动
Ctrl+b(back) 向上翻页 Ctrl+f(forward) 向下翻页
H(head) 屏幕顶部 M(middle) 屏幕中间 L(low) 屏幕底部
段落移动
{ 上一段 } 下一段
括号切换
%
标记
m一个字母 标记这一个 '字母 回到标记位置
选中文本
v 进入可视模式 选中字
V 进入可视行模式 选中行
Ctrl+v 进入可视块模式 选中垂直列
编辑操作:删除复制粘贴替换缩排
删除文本(等于剪切)
x(cut) 删除光标所在字符 可以nx删除几个字,对应移动命令
d移动命令(delete) 加数字,删除几个字,对应移动命令
dd 删除光标所在行,可以ndd,对应移动命令
D 删除至行尾,对应移动命令
复制粘贴
y移动命令(copy) 复制
yy 复制一行 nyy
p(paste) 粘贴
由于文件缓冲区不是剪切板,因此在其他软件中的复制剪切,不用直接P粘贴,必须使用右键
替换replace
r 命令模式 操作替换一个字符
R 替换模式(相当于insert)
缩排
*>>向右增加缩进
*<<向左增加缩进
.重复上次命令
撤销重复:
u(undo)撤销 Ctrl+r(redo)恢复
查找替换:
查找
/字符串 查找字符串 n向下一个
单词快速匹配:
*文件所在位置向下寻找
#文件所在位置向上寻找
取消高亮/找一个不存在的字符
查找并替换
:%s/旧文本/新文本/g
可视区域范围替换
?/旧文本/新文本/g
确认替换
:%s/旧文本/新文本/gc
y替换 n不替换 a都替换 q退出替换 l替换最后一个 Ctrl+E向上滚屏 Ctrl+Y向下滚屏
编辑:
i 进入编辑模式
I 在行首插入文本
a 在当前字符后添加文本
A 在行末添加文本
o 在当前行后面插入一空行
O 在当前行前面插入一空行
分屏命令
末行模式 操作文件
:e. 打开内置文件浏览器
:n 文件名 新建文件
:w 文件名 另存为(在编程时可以增加阶段性备份)
分屏命令
:sp 文件名 横向分屏
:vsp 文件名 纵向分屏
控制分屏窗口
Ctrl+w w 窗口间切换
Ctrl+w r 互换窗口
Ctrl+w c 关闭当前,不关闭最后一个
Ctrl+w q 退出当前,最后一个则关闭vi
Ctrl+w o 关闭其他