一、vi的使用
1、一般模式(游标移动、搜索、取代、删除字元、删除整列、复制整列、粘贴整列)
以 vi 处理一个档案的时后,一进入该档案就是一般模式了。在这个模式中, 你可以使用『上下左右』按键来移动光标,您可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、贴上』来处理您的文件数据。
2、编辑模式(可输入任何字元)
在一般模式中可以处理删除、复制、贴上等等的动作,但是却无法编辑的! 要等到您按下『i, I, o, O, a, A, r, R』等字母之后才会进入编辑模式。注意了!通常在 Linux 中,按下上述的字母时,在画面的左下方会出现『 INSERT 或 REPLACE 』的字样,才可以输入任何字来输入到您的档案中!而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式。
3、指令列表模式(读取、存储档案和其他额外功能)
在一般模式当中,输入『 : 或 / 或 ? 』就可以将光标移动到最底下那一行,在这个模式当中, 可以提供您『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号 等等的动作则是在此模式中达成的!
例子:使用vi建立一个文档名为test.txt的资料
1、使用vi进入一般模式
[root@linux ~]# vi test.txt
左下角会显示
"test.txt"[New File]
2、按i进入编辑模式,左下角会出现
-- INSERT --
注意:除了esc按键之外,其他按键都是输入按钮
3、按Esc按钮回到一般模式;左下角的insert消失
4、输入:wq存储后离开vi
:wq!是强制存储(在没有权限写入的时候)
二、vi的命令(常用)
一般模式(移动光标)
ctrl+f | 屏幕向下移动一页 |
---|---|
ctrl+b | 屏幕向上移动一页 |
0 | 移动到这一行最前面的字符处 |
$ | 移动到这一行最后面的字符处 |
G | 移动到这个档案的最后一行 |
gg | 移动到这个档案的第一行,相当于1G? |
n | n为数字,光标向下移动n行 |
h 或 向左箭头键(←) | 光标向左移动一个字符 |
j 或 向下箭头键(↓) | 光标向下移动一个字符 |
k 或 向上箭头键(↑) | 光标向上移动一个字符 |
l 或 向右箭头键(→) | 光标向右移动一个字符 |
注意:若想多次移动,在命令前面加上次数即可
一般模式(搜索与取代)
/word | 向光标之下寻找一个字符串名称为 word 的字符串 |
---|---|
:n1,n2s/word1/word2/g | n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 ! |
:1,$s/word1/word2/g | 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 |
:1,$s/word1/word2/gc | 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代 |
一般模式(删除、复制、粘贴)
x, X | 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) |
---|---|
dd | 删除游标所在的那一整列 |
ndd | n 为数字。删除光标所在的向下 n 列,例如 20dd 则是删除 20 列 |
yy | 复制游标所在的那一行 |
nyy | n 为数字。复制光标所在的向下 n 列,例如 20yy 则是复制 20 列 |
p, P | p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 |
u | 复原前一个动作 |
Ctrl+r | 重做上一个动作 |
编辑模式
i, I | 插入:在目前的光标所在处插入输入之文字,已存在的文字会向后退; 其中, i 为『从目前光标所在处插入』, I 为『在目前所在行的第一个非空格符处开始插入』 |
---|---|
a, A | a 为『从目前光标所在的下一个字符处开始插入』, A 为『从光标所在行的最后一个字符处开始插入』 |
o, O | 这是英文字母 o 的大小写。o 为『在目前光标所在的下一行处插入新的一行』; O 为在目前光标所在处的上一行插入新的一行! |
r, R | 取代:r 会取代光标所在的那一个字符;R会一直取代光标所在的文字,直到按下 ESC 为止 |
Esc | 退出编辑模式,回到一般模式中 |
指令模式
:w | 将编辑的数据写入硬盘档案中 |
---|---|
:q | 离开 vi |
:wq | 储存后离开,若为 :wq! 则为强制储存后离开 |
一般模式–>编辑模式 (当你按下i、I、a、A、o、O时)
编辑模式–>一般模式 (按两下ESC键)
一般模式–>命令模式 (输入冒号就进入了命令模式)
命令模式–>一般模式 (按下回车键就可以了)