一: VI介绍
1.1 简单介绍
Vi是linux系统里的文本编译器。Vi主要有两种状态,命令模式和编辑模式。
命令模式:通过vi命令打开文件后默认就会命令模式。改米模式下可以控制光标的移动,替换字符串等。
编辑模式:针对文件的增删改查的操作。
末行模式:执行待定命令。例如保存,退出。
当前是那种模式,看下vi编辑器界面下方有没有insert,有就是编辑模式,没有就是命令模式。
(命令模式)
(编辑模式)
(命令模式)
1.2 三模式切换
二:vi常见的操作
2.1vi的打开文件
命令 | 意义 |
vi filename | 打开文件,光标置于第一行 |
vi +n filename | 打开文件,光标置于第n行 |
vi + filename | 打开文件,光标置于最后一行 |
vi +/patter filename | 打开文件,光标置于第一个匹配Pattern的串处 |
vi filename … filename | 依次打开多个文件 |
2.2vi的追加内容
参数 | 意义 |
i | 在光标之前插入 |
I | 在光标所在行的行首插入 |
a | 在光标之后追加 |
A | 在光标所在的行位追加 |
o | 在光标所在行的下边插入一行 |
O | 在光标所在行的上边插入一行 |
2.3 删除内容
要执行删除模式,需要保持在命令模式才可。
命令 | 意义 |
x | 删除光标所在位置的一个字母 |
*x | 删除多个字符,*代表数字 |
dw | 删除光标所在位置之后的一个单词 |
*dw | 删除光标之后的多个单词,*代表数字 |
dd | 删除光标所在的行 |
*dd | 删除多行,*代表数字 |
d$ | 删除光标到行尾的内容 |
2.4 内容替换
切换到命令模式下
命令 | 意义 |
:s/***/### | 替换当前行第一个***为### |
:s/***/###/g | 替换当前行所有***为### |
:n,$s/***/### | 把从第n行开始到最后一行里每行里第一个***替换为### |
:n,$s/***/###/g | 把从第n行开始到最后一行里所有***替换为### |
2.5 光标移动
切换到命令模式下
命令 | 意义 |
h | 光标向左移动一个位置 |
j | 光标向下左移动一个位置 |
k | 光标向上移动一个位置 |
l | 光标向右移动一个位置 |
四个方向键 | 也可对应操作光标 |
0 | 移动到当前行的开头 |
e | 光标跳到下个word的结尾 |
w | 光标跳到下个word的开头 |
b | 光标回到上个word的开头 |
$ | 光标移动到所在行的行尾 |
:# | 光标移动到第#行,#代表数字 |
n+ | 光标向下移动n行 |
n- | 光标向上移动n行 |
H | 光标移动到屏幕顶行 |
M | 光标移动到屏幕中间行 |
L | 光标移动到屏幕最后行 |
2.6搜索命令
命令模式下执行下列操作
命令 | 意义 |
/*** | 在内容里搜索***的内容 |
n | 跳转到下一个***的内容出 |
N | 跳转到上一个***的内容出 |
2.7 文件的保存
末行模式下执行以下操作。[命令模式下按下:就切换到末行模式下]
命令 | 意义 |
w | 保存文件不退出vi |
w file | 文件另存到file中,不退出vi |
w! | 强制保存,不退出vi |
wq | 保持文件并退出 |
wq! | 强制保存文件并退出 |
q | 不保存文件退出vi |
q! | 不保存文件强制退出vi |
e! | 放弃所有修改,从上次保持的文件处在编辑 |