vi 常用命令
vi + 文件名 进入vi编辑界面
————————————————————————————————————————————————————-
[命令模式] 输入( :) 进入 [末行模式] [命令模式] 输入 (i)进入[编辑模式]
[末行模式] 输入 (Esc) 进入[命令模式] [末行模式] 输入 (wq) 保持并退出vi
[编辑模式] 输入 (Esc)进入 [命令模式]
————————————————————————————————————————————————————
如果没有行数 进入[末行模式] 输入命令 set number
命令 对应单词 功能解释
w write 保存
末行命令
w write 保存
q! quit 不保存退出
wq write&quit 保存并退出
x 空 保存并退出 作用同wq
e 文件名 edit 不关闭vi切换文件编辑
n 文件名 new 新建文件编辑
w 文件名 write 另存为,编辑当前文件,不切换文件
sp 文件名 split 横向增加分屏
vsp 文件名 vertical split 纵向增加分屏
*分屏控制命令:ctrl+w+w 切换到下一个窗口
ctrl+w+r 互换窗口
ctrl+w+c 关闭当前窗口,但不关闭最后一个窗口
ctrl+w+q 退出当前窗口,如果是最后一个窗口,关闭vi
ctrl+w+o 关闭其他窗口
命令模式命令
1 方向移动
h 向左 j 向下 k 向上 l 向右
2 行内移动
w word 向后一个单词
b back 向前一个单词
0(零) 空 移动到行首
$ 空 移动到行尾
^ 空 移动到非空格行首
3 行数移动
gg go 文件顶部
G go 文件末尾
数字gg 移动到数字对应的行数
数字G 移动到数字对应的行数
4 屏幕翻页
ctrl+b back 向上翻页
ctrl+f forward 向下翻页
H head 屏幕顶部
M middle 屏幕中间
L low 屏幕底部
5 段落移动
vi中使用空行来区分段落,通常一段功能相关的代码会写在一起。
{ 上一段
} 下一段
6 括号切换
在程序世界中()[] {} 使用频率很高,都是成对出现的。
% 括号匹配及切换
7 标记
开发时,有一段代码可能需要稍后处理,此时先使用 m 增加一个标记,方便快速跳转回来
增加了标记的行如果被删除,标记同时被删除
如果在其他行添加了相同名称的标记,之前的标记被覆盖
m x mark x是a-z或A-Z之间任意一个字母
'x 直接定位到标记x的位置
8 选中文本
v 从光标位置开始按照正常模式选中文本
V 选中光标经过的完整行
ctrl+r 垂直方向选中文本
9 撤销和恢复撤销
u undo 撤销上次命令
ctrl+r redo 恢复撤销命令
10 删除文本
x cut 删除光标所在字符,或者选中的文字
d(移动命令) delete 删除移动命令对应的内容
dd 删除光标所在行
D 删除光标位置开始到行尾的内容
11 复制 粘贴
y(移动命令) copy 复制
yy copy 复制一行,可用 nyy 复制多行
p paste 粘贴
12 替换
r replace 替换当前字符
R replace 替换当前行光标后的字符
13 缩排和重复执行
>> 向右增加缩进(4个空格)
<< 向左减少缩进(4个空格)
在可视模式下,缩排命令只需要使用一个 > 或 < 之后 单按 . 开始重复单空格缩进
14 查找(末行模式)
/str 查找str
* 向后查找当前光标所在单词
# 向前查找当前光标所在单词
15 查找并替换(末行模式)
%s/旧/新/g 用新替换旧(全局替换,替换文件所有的)
s/旧/新/g 同上 (选中区域替换)
%s/旧/新/gc 同上(确认替换,y替换 n不替换 a全部替换 q退出)
16 插入命令
i 进入编辑模式,在当前字符插入文本
o 在当前行后插入一个空行,然后开始编辑
O 在当前行前插入一个空行,然后开始编辑