vi的三种模式
1. 命令行模式
用户在用vi编辑文件时,最初进入的为该模式。可以进行复制、粘贴等操作。
2. 插入模式
进行文件编辑,按ESC键可以回到命令行模式。
3. 底行模式
光标位于屏幕的底行。可以进行文件的保存、退出、查找、替换、列出行号等
vi模式切换命令
命令 | 功能 |
---|
A a | (Append)进入编辑状态,从当前光标之后的位置开始插入键盘输入的字符 |
I i | (Insert)进入编辑状态,从当前光标之后的位置开始插入键盘输入的字符 |
O o | (Open)进入编辑状态,并插入一新行,光标移到该新行的行首,以后键盘输入的字符将插入到光标位置 |
ESC | 进入命令状态 |
:! Command | 在vi中执行外部命令Command,按回车键可以返回vi继续工作 |
vi的拷贝和粘贴命令
命令 | 功能 |
---|
[N]x | (Expurgate)删除从光标位置开始的连续N个字符(并复制到编辑缓冲区) |
[N]dd | (Delete)删除从光标位置开始的连续N行(并复制到编辑缓冲区) |
[N]yy | (Yank)复制从光标位置开始的连续N行到编辑缓冲区 |
p或P | (Put)从编辑缓冲区复制文本到当前光标位置(即粘贴) |
u | (Undo)取消上一次操作(即恢复功能) |
vi的保存和退出命令
命令 | 功能 |
---|
:q | (Quit)退出没有修改的文件(若文件被修改了而没有保存,则此命令无效) |
:q! | 强制退出,且不保存修改过的部分 |
:w | (Write)保存文件,但不退出 |
:x | (Exit)保存文件并退出 |
:w File | 另存为File给出的文件名,不退出 |
:r File | (Read)读入File指定的文件内容插入到光标位置 |
vi的光标命令
命令 | 功能 |
---|
h | 方向键,向左移动光标一个字符的位置,相当于键“←” |
j | 方向键,向下移动光标到下一行的位置,相当于键“↓” |
k | 方向键,向上移动光标到上一行的位置,相当于键“↑” |
l | 方向键,向右移动光标一个字符的位置,相当于键“→” |
:N | 移动光标到第N行(N待定) |
1G / gg | 移动光标到文件的第1行 |
G | 移动光标到文件的最后一行 |
:set number | 设置显示行号 |
:set :nonumber | 取消显示行号 |
vi的查找命令
/string 查找字符串
n-继续查找
N-反向继续查找
支持正则表达式比如:/^the /end$
vi的替换命令
利用:s 命令可以实现字符串的替换。
:s/str1/str2/
:s/str1/str2/g
:.,$ s/str1/str2/g g全部替换(默认换第1个)
:1,$ s/str1/str2/g 1第一行 $最后一行
:%s/str1/str2/g %代表全部行数
r: 使用 r 命令可以替换单个字符,而无需进入插入模式。
1. 将光标移动到你想要替换的字符上。
2. 在普通模式下,按下 r 键。
3. 输入你想要替换成的新字符(例如,输入 g)。
4. 按下 Esc 键,退出替换模式,返回到普通模式。
vi的复制和剪切
y0-将光标至行首的字符拷入剪贴板
y$-将光标至行尾的字符拷入剪贴板
d0-将光标至行首的字符剪切入剪贴板
d$-将光标至行尾的字符剪切入剪贴板
range y-块复制
range d-块剪切
vi的代码缩进命令
gg=G 全局进行代码缩进
'>' + 上下键 选择需要缩进的代码,然后按下‘=’进行缩进