Linux --vi命令
Vi三种状态:
命令模式(command mode)
插入模式(Insert mode)
底行模式(last line mode)
1.命令模式(command mode)
控制屏幕光标的移动,字符,字或行的删除,移动复制某区段及进入Insert mode下,或者到last line mode
2.插入模式(Insert mode)
在插入模式(Insert mode)下才可以做文字输入,按[ESC]键可回到命令行模式
3.底行模式(last line mode)
将文件保存或退出vi,也可以设置编辑环境,比如寻找字符串,列出行号...等。
一般将vi简化成两个模式,将底行模式算入命令行模式
2.vi的基本操作
a):进入vi
在命令终端,输入vi 文件名就进入vi了,
进入vi之后是出于【命令行模式】,需要切换
到【插入模式】才能够输入文字
b):切换到插入【模式编辑】文件
在【命令行模式】下按字母i就可以进入到【插入模式】,这时可以输入文字
c):Insert的切换
目前处于【插入模式】,可以输入文字,也可以使用delete键删除字符,如果要转到【命令行模式】可以按ESC键进行转换
d):退出vi及保存文件
在【命令行模式】下按一下【:】冒号进入【last line mode】
如:
:w fileName(输入【w fileName】将文章以指定的文件名fileName保存)
:wq(输入【wq】,存盘并退出vi)
:q!(输入q!,不存盘强制退出vi)
3.命令行模式功能键
1.插入模式(i,a,o)
按【i】切换进入插入模式,按“i”进入插入模式
后是从光标当前位置开始输入文件
按【a】进入插入模式后,从目前光标所在位置
的下一个位置开始输入文字
按【o】进入插入模式,是插入新的一行,从行首开始输入文字。
2.从插入模式切换为命令行模式
按【ESC】键
3.移动光标
vi可以直接用键盘上的光标来上下左右移动,
但正规的vi是用小写英文字母[h],[j],[k],[l]
,分别控制光标左,下,上,右移一格。
Ctrl + b :屏幕往后移动一页
Ctrl + f :屏幕向前移动一页
Ctrl + u :屏幕往后移动半页
Ctrl + d :屏幕往前移动半页
数字0:移动到文章开头
G:移动到文章最后
$: 移动到光标所在”行尾“
^:移动到光标所在的“行首”
w:光标跳到下个字的开头
e:光标跳到下个字的字尾
b:光标回到上个字的开头
#l:光标移到该行的第#个位置
4.删除文字
x:每按一次,删除光标所在位置后面一个字符
#x:例如,3x表示删除光标所在位置后面3个字符
X:大写X,每按一次,删除光标所在位置的前面一个字符
#X,例如20X表示删除光标所在位置前面20个字符
dd:删除光标所在行
#dd:从光标所在行开始删除#行,比如2dd,则是从光标所在行开始删除2行
5.复制
yw:将光标所在之处到字尾的字符复制到缓冲区中
#yw:复制#个字到缓冲区
yy复制光标所在行到缓冲区
#yy:例如,6yy表示拷贝从光标所在该行往下数6行文字
p:将缓冲区内的字符贴到光标所在位置
注意:所有与y有关的复制命令都必须与“p”配合才能完成复制与粘贴功能
6.替换
r:替换光标所在处的字符
R:替换光标所到之处的字符,直到按下ESC键为止
7.恢复上一次操作
u:如果错误执行一个命令,可以马上按下u,回
到上一个操作。按多次u可以执行多次恢复操作
8.更改
cw:更改光标所在处的字到字尾处
c#w:例如,c3w表示更改3个字
9.调到指定的行
Ctrl +g :列出光标所在的行号
#G:例如15G,表示移动光标至文字的第15行行首
4.Last line mode下命令简介
在使用Last line mode 之前, 要先确认
已经按ESC键并处于command mode下,
再按:冒号即可进入last line mode
A:列出行号
[:set nu]: 输入set nu后,会在文件中的每一行前面列出行号
B:调到文件中的某一行
[:#]:#表示一个数字,在冒号后输入一个数字,
再按回车键就会跳到该行了,如输入数字15,
再回车,就会跳到文章中的第15行
c:查找字符
[/关键字]:先按[/]键,再输入想要寻找的字符
,如果第一次找的关键字不是想要的,可以一直
按[n],会往后寻找想要的关键字
[?关键字]:先按[?]键,再输入想要寻找的字符
,如果第一次找的关键字不是想要的,可以一直
按[n]会往前寻找想要的关键字
d:保存文件
[:w]:在冒号输入字母[w]就可以将文件保存起来
e:离开vi
[:q]:按[q]就是退出,如果无法离开vi,可以在[q]
后面跟一个[!]强制离开vi
[:qw]:一般建议离开时,搭配[w]一起使用,这样
在退出时还可以保存文件