vi可以分为三种状态分别是
- 命令模式(进入vi时)
- 插入模式(输入[i]进入,输入[ESC]回到命令模式)
- 底行模式(文件保存或退出时)
命令模式:
gg: 转到第一行
G: 转到最后一行
$: 移动到行首
/[关键字]或?[关键字] :查找关键字,按n查找下一个,N查找上一个
u:撤销操作
ctrl+f 屏幕向下滚动一屏;
ctrl+b 屏幕向上滚动一屏;
ctrl+e 屏幕向下滚动一行;
ctrl+y 屏幕向上滚动一行;
ctrl+d 屏幕向下滚动半屏;
ctrl+u 屏幕向上滚动半屏;
z + Enter 滚动屏幕,使当前光标所在行处于屏幕第一行;
z + . 滚动屏幕,使当前光标所在行处于屏幕中间行;
z + - 滚动屏幕,使当前光标所在行处于屏幕最后一行;
插入模式:
I:进入插入模式,光标定位到行首
A:进入插入模式,光标定位到行尾
i:进入插入模式,光标定位到当前光标处
底行模式:
:w 保存文件
:q 退出
:q! 不保存并强制退出
:wq 保存并退出
:wq! 强制保存并退出
进入vi时:
vi filename: 打开/新建文件,并将光标置于第一行首
vi +n filename: 打开文件,并将光标置于第n行首
vi + filename: 打开文件,并将光标置于最后一行首
vi +/pattern filename: 打开文件,并将光标置于第一个于pattern匹配的位置
文档操作:
按键:
复制相关:
yy:复制游标所在行整行
2yy或y2y:复制 2 行
y^:复制至行首,或y0
y$:复制至行尾
yG:复制至文件尾
y1G:复制至文件首
选中内容复制:先在命令模式下按 v 进入 Visual Mode,然后用方向键 或 hjkl 选择文本,再按 y 进行复制
dd:剪切游标所在行整行
d^:剪切至行首,或d0
d$:剪切至行尾
dw:剪切一个word
dG:剪切至文件尾
选中内容进行剪切:先在命令模式下按 v 进入 Visual Mode,然后用 方向键 或 hjkl 选择文本,再按 d 进行剪切。
p:”粘贴至游标后(下)
P:粘贴至游标前(上)
:undo 或 :u :撤销最近一次操作