基本上vi共有三种模式:
一般指令模式(默认的模式)
编辑模式(按下i I o O a A r R,左下方出现INSERT或者REPLACE的字样,才可以进行编辑,也可以按下ESC按键退出编辑模式)
指令列命令模式(在一般模式中,输入: / ?三个中的任意一个按钮,可以将光标移动到最后一行)
vi 打开或者创建一个文件
:wq 存盘(write)并离开(quit)
:wq! 强制写入
一般指令模式————————————————————————移动光标的方法
h或左方向键 光标向左移动一个字符
j或下方向键 光标向下移动一个字符
k或上方向键 光标向上移动一个字符
l或右方向键 光标向右移动一个字符
扩展:向下移动30行可以在一般指定模式使用"30j"或者30+向下方向键
上下页
ctrl+f 屏幕向下移动一页,相当于Page Down按键(常用)
ctrl+b 屏幕向上移动一页,相当于Page Up按键(常用)
ctrl+d 屏幕向上移动半页
ctrl+u 屏幕向上移动半页
+光标移动到非空白字符的下一列
-光标移动到非空白字符的上一列
n<space> n表示数字,列如20<span>则光标会向后移动20个字符距离
0或功能键(Home) 数字“0”,移动到这一列的最前面字符处(常用)
$或功能键(End) 移动到这一列的最后面字符处(常用)
H 光标移动到这个屏幕的最上方的那一列的第一个字符
M 光标移动到这个屏幕的中央那一列第一个字符
L 光标移动到这个屏幕的最上方的那一列的第一个字符
G 移动到这个文件的最后一列
nG n为数字。移动到这个文件的第n列。可配合:set nu
gg 移动到这个文件的第一列,相当于1G(常用)
n<Enter> n为数字。光标向下移动n列(常用)
一般指令模式————————————————————————搜寻与取代
/word 向光标之下寻找一个名称为word的字串。(常用)
?word 向光标之上寻找一个字串为word的字串
n 这个n是英文按键.代表重复前一个搜寻的动作,向下搜寻下一个。
N 代表重复前一个搜寻的动作,向上搜寻上一个。
注: /word配合n及N是非常方便的,可以让你重复的找到你搜寻的关键字
:n1,n2s/word1/word2/g 在第n1行与n2行之间寻找word1这个字串,并将该字串取代为word2.
举例 :1,10s/sudo/yang/g 在第一行到第十行之间搜寻sudo并把sudo换成yang(常用)
:1,$s/word1/word2/g 在第一行与最后一行之间寻找word1这个字串,并将该字串取代为word2.(常用)
:1,$s/word1/word2/gc 在第一行与最后一行之间寻找word1这个字串,并将该字串取代为word2.且在取代前显示提示字符给使用者(cofirm)是否需要取代(常用)
一般指令模式————————————————————————删除、复制与粘贴
x 删除后面的一个字符 X 删除前面的一个字符(常用)
nx/Nx n为数字,连续向后/前删除n个字符。举例来说,我要连续删除10个字符
dd 删除光标所在的那一整行(常用)
ndd n为数字。删除光标所在的向下n列,例如20dd则是删除20行(常用)
d1G 删除光标所在到第一列的所有数据
dG 删除光标所在到最后一列的所有数据
d$ 删除光标所在处
d0 那个是数字的0,删除光标所在处
yy 复制光标所在的那一行(常用)
nyy n为数字。复制光标所在的向下n列,例如20yy则是复制20列(常用)
y1G 复制光标所在行到第一行的所有数据
yG 复制光标所在行到在最后一行的所有数据
y0 复制光标所在的那个字符到该行行首的所有数据
y$ 复制光标所在的那个字符到该行行尾的所有数据
p,P p将已复制的数据在光标下一行贴上,P则为贴在光标上一行(常用)
J 将光标所在行与下一行的数据结合成同一行
c 重复删除多个数据,例如向下删除10列 10cj
u 复原前一个动作(常用)
ctrl+r 重做上一个动作(常用)
. 重复前一个动作的意思
一般指令模式切换到编辑模式的可用的按钮说明—————————————————进入插入或取代的编辑模式
i,I 进入插入模式i为从目前光标所在处插入,I为在目前所有列的第一个非空白字符处开始插入(常用)
a,A 进入插入模式a为从目前光标所在的下一个字符开始插入,A为从光标所在列的最后一个字符处开始插入(常用)
o,O 进入插入模式o为目前光标所在的下一行处插入新的一行,O为在目前所在处插入新的一列(常用)
r,R 进入取代模式r只会取代光标所在的哪一个字符一次,R会一直取代光标所在的文字,直到按下esc为止(常用)
一般指令模式切换到指令列模式的可用的按钮说明—————————————————进入插入或取代的编辑模式
:w 将编辑的数据写入硬盘文件中(常用)
:w! 若文件属性为"只读"时,强制写入该文件。不过,到底能不能写,还是跟你对该文件的权限有关。
:q 离开vi(常用)
:q! 若曾修改过文件,又不想存储,使用!为强制离开不储存盘案。
:wq 储存后离开,若为:wq! 则为强制储存后厉害(常用)
ZZ 这是大写的Z喔!若文件没有更动,则不储存离开,若文件已经被更动过,则储存后离开。
:w [filename] 将编辑的数据储存成另一个文件(类似另存新文件)
:r [filename] 在编辑的数据中,读入另一个文件数据。
:n1,n2 w [filename] 将n1到n2的内容储存成filename这个文件
:! command 暂时离开vi到指令模式下执行 command的显示结果!例如":! ls /home" 即可在vi中察看/home下面以ls输出的文件信息
:set nu 显示行号
:set nonu 与set nu相反,为取消行号
vi的使用
最新推荐文章于 2022-12-21 15:26:52 发布