一: 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! |
放弃所有修改,从上次保持的文件处在编辑 |