VI
一. vi的三种工作模式
- 命令模式
- 末行模式
- 编辑模式
命令->末行: :
末行->命令: sec
编辑-->命令: ESC & Ctrl+[
命令-->编辑: i/I a/A o/O
末行命令
w, q, q!, wq, x
末行模式切换文件编辑: :e file.py :e . :e …
:n 新建文件 :w file 另存为file
二. vi对文件的操作命令
1) vi新建或打开文件
vi <file> # 打开文件(没有则新建)
vi file +n # 打开文件并定位到第n行
vi file +/desc # 打开文件并定位到第一次出现 desc 的位置
2) vi处理打开文件异常
直接按D删除交换文件, 如果删除不了则R继续编辑, 之后手动删除
三. vi编辑命令
1) 重复命令, 重复执行
n+命令 : 同一命令执行n次
. : 重复一次上次的命令
2) 移动
h j k l : 左,下,上,右
w e b : 下个词首,下个词尾,上个词首
0 $ ^ : 行首, 行尾, 第一个字符
gg G : 文件头,文件尾
n G : 第n行
Ctrl+b, Ctrl+f : 向上,向下翻页
ctrl+d, ctrl+u : 向上,向下翻半页
ctrl+e, ctrl+y : 一行
H, M, L : 屏幕 顶, 中, 底
[[ 转到上一个位于第一列的“{”
]] 转到下一个位于第一列的“}”
{ 转到上一个空行
} 转到下一个空行
% : 括号匹配
mx, 'x : 标记, 返回标记位置
3) 选中文本
v, V, Ctrl+v : 可视, 可视行, 可视块模式
4) 撤销和恢复
u, Ctrl+r : 撤销恢复
5) 删除
x : 删除光标所在字符
d : 和移动命令结合使用
dd : 删除整行
D : 删除至行尾
6) 复制粘贴
y(移动) , yy : 复制
p : 粘贴
7) 替换/查找
r, R : 替换当前字符, 替换光标后字符
/str : 查找str, n:下个出现的位置, N:上个出现的位置
*, # : 单词向后,向前快速匹配
:%s/str/str1/g : 全部将str替换为str1
?/str/str1/g : 可视区域替换
?/str/str1/gc : 替换时有提示 y n a q
8) 插入命令
i & I : 光标后,行后
a & A : 光标前, 行前
o & O : 后行, 前行
命令模式 10i*Esc的结果是?
多行相同位置加入相同代码?
8) 缩进
>> , <<
9) 分屏
:sp[file或.] , :vsp 横向分屏,纵向分屏
Ctrl+w+
w 切换窗口
c 关闭窗口
r 互换窗口
o 关闭其窗口
四. 常用操作
4.1 大小写转换
gu/U+移动 如:guw
gu ---- 把选择范围全部小写
gU ---- 把选择范围全部大写