Linux下VI命令及三种模式切换
命令模式:用vi命令默认进入的模式,可以执行命令。
输入模式:就像在windows上编辑txt的内容样,可以输入你想要的内容。
底线命令模式:可以执行一些末行指令,例如保存文件、复制第几行到第几行到新的文件等等。
记住最常用的命令:
- i 切换到输入模式,以输入字符。
- x 删除当前光标所在处的字符。
- : 切换到底线命令模式,以在最底一行输入命令。
1、命令模式 >< 输入模式
一般我们都是这样操作的:
[guest@www.masswerk.at:2]$ ls -p istest.ini [guest@www.masswerk.at:2]$ vi istest.ini
(1)何为命令模式?
其实当你使用vi test.ini时就已经进入了命令模式,当你在键盘上敲下i,并不会在光标位置输入i,而是执行i指令,进入了输入模式。
在命令模式下,除了可以键入常用的i,还可以键入下面的指令,例如:a、A、i、I、o、O、d、D、x等等,当然,还包括冒号(:)冒号就进入了底
a | 在当前光标位置之后插入内容。 |
A | 在光标所在行的末尾(行尾)插入内容。 |
i | 在当前光标位置之前插入内容。 |
I | 在光标所在行的开头(行首)插入内容。 |
o | 在光标所在行的后面插入一个新行。 |
O | 在光标所在行的前面插入一个新行。 |
dd | 删除光标所在行,并且后面的数据填充所删的行; |
D | 删除光标所在行,但是保留该删除的空白行; |
x | 删除当前光标所在字符 |
yy | 复制光标所在行 |
p | 在光标的下一行粘贴复制的行,一般在yy操作后使用 |
u | 撤销上一个操作 |
(2)命令模式 -> 输入模式
当前在命令模式,使用a、A、i、I、o、O即可进入输入模式。
a——append 属于追加,在后面追加内容;
i——insert 属于插入,在前面插入内容;
o——other 属于另起一行的意思;
备注:怎么看你现在是不是在输入模式呢?处于输入模式时,最后一行会显示一个INSERT,就像截图:
(3)输入模式 -> 命令模式
输入模式中把内容输好了,要退出输入模式,按ESC键即可回到命令模式。
2、命令模式 >< 底线命令模式
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
(1)命令模式 -> 底线命令模式
在命令模式下,输入:就进入了底线命令模式,就可以输入末行命令啦,例如常见的wq就是属于末行命令。
:w | 保存文件 |
:q | 退出编辑器 |
:wq | 保存文件并退出编辑器 |
:q! | 不保存并退出编辑器 |
:wq test.ini | 保存文件并退出编辑器,文件名为test.ini |
:wq /home/guest/test.ini | 保存文件并退出编辑器,文件路径为/home/guest,文件名为test.ini |
常用的其他末行命令:
:set nu 或 :set number :set nonu |
显示行号 取消显示行号 |
:1,20d | 一次删除1到20行 |
/查找内容 ?查找内容 |
从光标所在行向下查找 从光标所在行向上查找 n 下一个; N 上一个 |
:1,10s/old/new/g | 替换所有1到10行的old为new |
(2)底线命令模式 -> 命令模式
要退出底线命令模式,按ESC键即可回到命令模式。
注意:
底线命令模式和输入模式不能直接切换,必须先按ESC键回到命令模式才行。