语法]:vi[-wn][-R]文件…
[说明]:vi是一个基于行编辑器ex上的全屏幕编辑器,可以在vi中使用ex,ed的全部命令,vi选项中-wn指将编辑窗口大小置
为n行,-R为将编辑的文件置为只读模式,vi工作模式分为命令模式和输入模式,一般情况下在命令模式下,可敲入vi命令,进
入输入模式下时可以编辑要编辑的文本,命令aAiIoOcCsSR可进入输入模式,在输入模式下按ESC键可推出输入模式,回
到命令模式,在命令模式中敲入:命令,则可进入ex方式,在屏幕底部出现提示符:,此时可使用任意ex命令,屏幕底行也用来
作/?!命令的提示行,大多数命令可以在其前面加数字,表示命令执行的重复次数,下面简单介绍一下vi的命令集:
^表示(CTRL)键
^B退回前一页,前面加数字表示重复次数,每次换页时保留上一页的两行
^D在命令模式下,表示下滚屏幕的一半,在输入模式下,表示回退至左边的自动缩进处
^E显示屏幕底线之下的一行
^F前进一页,前面加数字表示重复次数,每次换页时保留上一页的两行
^G显示当前文件名,当前行号和文件总行数,并用百分号当前行在整个文件中的位置
^H(退格)在命令模式下,光标左移一格;在输入模式下,删去前面的字符
^I(TAB)在输入模式下,产生一串空格
^J(LF)光标下移一行
^L刷新屏幕,即将屏幕重新显示
^M(回车)在命令模式下,光标移动至下行开头;在输入模式下,开辟一新行
^N光标下移一行
^P光标上移一行
^Q在输入模式下,将其后的非打印字符作为正文插入
^R刷新屏幕
^U屏幕上滚一半,前面加数字时表示上滚的行数,此数字对以后的^D^U命令有效
^V在输入模式下,将其后的非打印字符作为正文插入
^W在输入模式下,使光标回退一个字
^Y显示屏幕底线之上的一行
^Z暂停编辑,退回上层Shell
^[(ESC)退出输入模式,回到命令模式
!暂时退出编辑,执行Shell命令
(双引号)用于标志有名缓冲区,编号缓冲区1-9用于保存被删去的正文,字母名缓冲区a-z供用户存放自定义的正文
$将光标移动到当前行尾,前加数字则表示前移行数,如2$表示移动到下一行行尾
%将光标移动到配对的小括号()或大括号{}上去
(退回句子开头
)前移到句子开头
-退到上一行第一个非空格字符
.重复上一次改变缓冲区内容的命令
/模式向前搜索模式,将光标移动到模式出现处,模式是一个正规表达式,(参看grep)
:在屏幕底部提示:,其后可使用ex命令
?功能同/,但方向是向前查找
[[光标回退至前一节分界处
转意符
]]光标前移至节分界处
^(不是CTRL)光标移至当前行第一个非空字符上
‘连续两个'’表示将光标移至其移动前的位置,’后跟字母表示光标字母标记的行首(参看m命令)
A在行尾插入正文,进入输入模式
B光标回退一个字
C替换光标后的内容
D删除光标后的内容
E光标前移到字尾
F字符在当前行向左查找指定字符
G光标移动到其前面数字指定的行,若未指定则移动到最后一行
H光标移动到屏幕顶行,若前面有数字,则移动到屏幕上该数字指定的行
I在行开头插入正文
J连接两行,若前面有数字则连接数字指定的行
L光标移动到屏幕底行,若前面有数字,则移动到屏幕底线往上数该数字指定的行
M光标移动到屏幕中线
N使用模式查找/或?时,重复找下一个匹配的模式,但方向与上次相反,其功能同n,但方向相反
O在当前行上开辟一新行
P将上次被删除的正文插入光标前面,可在其前面加缓冲区编号,编号1-9用于保存被删去的正文,字母名缓冲区a-z供用户存放自
定义的正文
Q从vi推出进入ex命令状态
R替换字符串
S替换整行
T字符向左查找字符
U将当前行恢复至第一次修改前的状态
W光标移至下一个字首
X删除光标前的字符
Y将当前行存入无名缓冲区,前面加数字表示存入的行数,也可用有名缓冲区来保存,以后可用命令p或P将其取出
ZZ存盘退出vi
a光标后插入正文
b光标回退至上一个字首
cw替换当前字
c)替换当前句子
dw删除一个字
dd删除一行
e光标移到下一个字末
f字符在当前行向前查找字符
h光标左移一格
i在光标前插入正文
j光标下移一行
k光标上移一行
l光标右移一格
m字母用字母标记当前行,以后可用‘字母使光标移动到当前行,(参看’命令)
n重复上次/或?命令
o在当前行下开辟一新行
p将用户缓冲区内容放到光标位置(参看P命令)
r替换当前字符
s用一串字符替换当前字符
t字符光标移动至字符前
u取消上次操作
w光标移至下一字首
x删除当前字符
yw将当前字存入无名缓冲区,前面可加x,表示存入名字为x的有名缓冲区(x为a-z),也可加数字表示存入的字数,以后可用P或p
命令取出
yy将当前行存入无名缓冲区,用法参看yw
{光标移动至前一段开头
|光标移至行首,若前面加数字,则移到数字指定行的行首
}光标移至下一段开头
在:提示符下,常用命令如下:
:w当前文件存盘
:w!强制存盘
:w文件将内容写入指定文件
:w!文件强制写入指定文件
:x,yw文件将x至y行写入指定文件中
:r文件将文件读到光标位置
:r!命令将系统命令的输出读到光标位置
:q退出编辑
:q!强制退出
:x与命令ZZ相同
:e文件名编辑另一文件
:e!重新编辑文件,放弃任何改变
:sh执行sh,结束后回到编辑
:!命令执行命令后回到编辑
:n编辑下一文件
:n文件表重新定义待编辑文件表
:t设置vi的选项,例如tnu表示每行前显示行号,在选项前加no则表示清除该选项,例如tnonu表示每行前不显示行
号,下面是一些常用的选项:
ai自动缩进
aw编辑下一文件前自动存盘
ic查找字符串时不区分大小写
nu每行前显示行号
sm输入)及}时显示与之配对的(或{
slow插入时延迟屏幕刷新
ws使查找能绕过文件尾从头进行
wa写文件之前不作对文件的检查
:s/old/new用new替换行中首次出现的old
:s/old/new/g用new替换行中所有出现的old
:#,#s/old/new/g用new替换从第#行到第#行中出现的old
:%s/old/new/g用new替换整篇中出现的old
如果替换的范围较大时,在所有的命令尾加一个c命令,强制每个替换需要用户进行确认,例如:s/old/new/c或s/old/new/gc
u取消操作
i插入命令a附加命令o打开命令c修改命令r取代命令s替换命令Esc退出命令
G文件尾行1G文件首行#G文件的#行
:tnu:tnonu显示行号不显示行号
Vi是一个历史悠久且功能强大的UNIX文书编辑器。在古早的年代,许多键盘都只有一些基本按键,连上下左右键都没有,所以vi
大多数的功能都必须使用一些特殊的按键。
Vi在使用时可以分成二种模式,一种是「编辑模式」,另一种则为「命令模式」。在编辑模式时,我们可以使用上下左右键来移动光
标并编辑输入我们所要编辑的文字内容。而命令模式时,我们可以进行档案操作(开文件、存盘等)、搜寻等功能。使用vi时,我们
会很常按
一进入vi时,预设会处于命令模式,我们必需先输入"o"、"i"、或"a"才能进入编辑模式。
以下即为进入编辑模式的指令:
按键意义
iInrt(插入),在目前光标前开始输入。
aAppend(附加),在目前光标后开始输入。
o在光标下方新增一空白行并开始编辑。
O在光标上方新增一空白行并开始编辑。
如果您输入错误,您无法使用
命令模式,接着您就可以使用下列指令来进行进阶编辑:
按键意义
x删除光标所在位置的字符。
dw删除游标所在到字尾,即删除一个字。
dd删除游标所在一整行。
d+数字+
yw复制光标开始到字尾。
yy复制游标所在一整行。
y+数字+
p贴上上一次复制的内容。
:w
:w文件名称
:q
:wq
:q!
接下来我们说明一下如何在档案中穿梭移动:
按键意义
h游标向左移。
j游标向下移。
k游标向上移。
l游标向右移。
^跳到行首。
$跳到行尾。
w游标跳到下个字的开头。
e游标跳到下个字的结尾。
b游标跳到上个字的开头
:数字
/欲搜寻的字符串
只要您熟悉了上列指令,您大概就可以很轻松的使用vi了。Vi还有许多功能,你可以manvi来获得更多信息。
进入vi的命令
vifilename:打开或新建文件,并将光标置于第一行首
vi+nfilename:打开文件,并将光标置于第n行首
vi+filename:打开文件,并将光标置于最后一行首
vi+/patternfilename:打开文件,并将光标置于第一个与pattern匹配的串处
vi-rfilename:在上次正用vi编辑时发生系统崩溃,恢复filename
vifilename….filename:打开多个文件,依次进行编辑
移动光标类命令
h:光标左移一个字符
l:光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n:光标下移一行
Enter:光标下移一行
w或W:光标右移一个字至字首
b或B:光标左移一个字至字首
e或E:光标右移一个字至字尾
):光标移至句尾
(:光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H:光标移至屏幕顶行
M:光标移至屏幕中间行
L:光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
插入文本类命令
i:在光标前
I:在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本搜索及替换命令
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索
patternn:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g将文件中所有p1均用p2替换选项设置
all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl+I)和行尾标志($)
number:显示行号
report:显示由面向行的命令修改过的数目
ter:显示简短的警告信息
warn:在转到别的文件时若没保存当前文件则显示NOwrite信息
nomagic:允许在搜索模式中,使用前面不带“”的特殊字符nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
mesg:允许vi显示其他用户用write写到自己终端上的信息最后行方式命令
:n1,n2con3将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2mn3将n1行到n2行之间的内容移至到第n3行下
:n1,n2d将n1行到n2行之间的内容删除
:w保存当前文件
:efilename打开文件filename进行编辑
:x保存当前文件并退出
:q退出vi
:q!不保存文件并退出vi
:!command执行shell命令command
:n1,n2w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容
作为command的输入
:r!command:将命令command的输出结果放到当前行
寄存器操作
“?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字
“?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字
“?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字
“?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字ndd:将当前行及其下共n行文本
删除,并将所删内容放到1号删除寄存器中。
t命令
显示行号:tnumber
将文件设为只读:treadonly
使vi在“:n”和“:!”命令之前都自动保存文件:tautowrite
显示用户处在什么模式下:tshowmode
:tnoshowmode就是关闭此显示。
vi环境变量还有很多。了解它们,将给用户使用vi带来更多方便。用户可以通过vi的联机帮助查到对应的环境变量的详细作用。
vi技巧
1)用指定快捷键如ctrl+j输入#注释符
在":"提示符下,使用定义快捷键的命令map,然后同时按下ctrl+v,然后再按下ctrl+j,再输入空格,再输入要定义的命令,命令是按"i"键后
输入"#",再输入"esc"键.:map^Bi#
2)给文件加密
在命令行状态:下,执行命令X,然后输入密码即可,ps:一般脚本加密码后无法自动执行了
++在vi中搜索了一个单词,该单词以高亮显示,看起来很不舒服,怎么能将它去掉
在vi的命令模式下输入:nohlarch就可以了。另外可以在~/.vimrc中写上下面的语句就会有高亮显示:thlarch
加上下面的语句就不会有高亮显示:tnohlarch
vi其它技巧整理:
1、交换两个字符位置xp;
上下两行调换ddp;
上下两行合并J;
从当前位置复制到行尾y$
如果要粘贴到其他地方p就可以了
删除所有行dG
从当前位置删除到行尾d$
2、:X
保存后就加密了
:X
然后系统会提示输入密码
输入密码后存盘退出
下次编辑时请使用
vi-xfilename
系统会提示你输入密码,呵呵
例:以HP-UX为例
a、加密
vifile
:X
(Areyousure?(y/n)[n]:)回答y
输入密码回车以后再保存,就加密成功了
b、解密
vi-Cfile或者vi-xfile
在Key:后面输入密码进入file
:X
(Areyousure?(y/n)[n]:)回答y
直接回车以后再用wq或者wq!保存,就把file解密成功了
顺便提一下:加密后的脚本不能被解释执行!
c、:X(uppcaX)
key:……
后用wq!存盘,不能用:x,否则加密失效
打开时:
vi-xfile
key:…..
3、在命令状态下,nyy表示拷贝从光标行起的下n行内容,p表示paste,粘贴下来在光标处
4、单个字符替换用r;
覆盖多个字符用R;
用多个字符替换一个字符用s;
整行替换用S;
:%s/old_word/new_word/g;
这个指令是于在整个文件中替换特定字符串;
5、H跳到第一行
M跳到中间一行
L跳到最后一行
将光标移到第n行,按下mk
将光标移到第m行,按下"ay'k
即将第n到m的行存到a寄存器,以此类推,b,c……..寄存器等
想粘贴到某处,直接将光标移到某地,按下‘ap即可
6、删除命令
dl删除当前字符(与x命令功能相同)
d0删除到某一行的开始位置
d^删除到某一行的第一个字符位置(不包括空格或TAB字符)
dw删除到某个单词的结尾位置
d3w删除到第三个单词的结尾位置
db删除到某个单词的开始位置
dW删除到某个以空格作为分隔符的单词的结尾位置
dB删除到某个以空格作为分隔符的单词的开始位置
d7B删除到前面7个以空格作为分隔符的单词的开始位置
d)删除到某个语句的结尾位置
d4)删除到第四个语句的结尾位置
d(删除到某个语句的开始位置
d}删除到某个段落的结尾位置
d{删除到某个段落的开始位置
d7{删除到当前段落起始位置之前的第7个段落位置
dd删除当前行
d/text删除从文本中出现“text”中所指定字样的位置,一直向前直到下一个该字样所出现的位置(但不包括该字样)之间的内
容
dfc删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括
该字符)之间的内容
dtc删除当前行直到下一个字符“c”所出现位置之间的内容
D删除到某一行的结尾
d$删除到某一行的结尾
5dd删除从当前行所开始的5行内容
dL删除直到屏幕上最后一行的内容
dH删除直到屏幕上第一行的内容
dG删除直到工作缓存区结尾的内容
d1G删除直到工作缓存区开始的内容
7、修改操作
cl更改当前字符
cw修改到某个单词的结尾位置
c3w修改到第三个单词的结尾位置
cb修改到某个单词的开始位置
cW修改到某个以空格作为分隔符的单词的结尾位置
cB修改到某个以空格作为分隔符的单词的开始位置
c7B修改到前面7个以空格作为分隔符的单词的开始位置
c0修改到某行的结尾位置
c)修改到某个语句的结尾位置
c4)修改到第四个语句的结尾位置
c(修改到某个语句的开始位置
c}修改到某个段落的结尾位置
c{修改到某个段落的开始位置
c7{修改到当前段落起始位置之前的第7个段落位置
ctc修改当前行直到下一个字符c所出现位置之间的内容
C修改到某一行的结尾
cc修改当前行
5cc修改从当前行所开始的5行内容
折行
:twrapmargin=4
:tnumber加行号!
:g/$/s//ABC/g
:g/^/s//def/g
在文本每行的头和尾添加字符串.
8、替换操作
s将当前字符替换为一个或多个字符
S将当前行替换为一个或多个字符
5s将从当前字符开始的5个字符替换为一个或多个字符
注:vi替换使用规则:
:g/s1/s/s2/s3/g
第一个g表示对每一个包括s1的行都进行替换,第二个g表示对每一行包括s1的行所有的s2都用s3替换
s表示替换,s2是要被替换的字符串,他可以和s1相同(如果相同的话用//代替),s3是替换字符串
9、移动
fx
往右移动到x字符上–〉fx
往左移动到x字符上–〉Fx
往右移动到x字符前–〉tx
往左移动到x字符后–〉Tx
(注意:以上四个命令中,其中x是键入的字符)
;–>分号,配合f和t使用,重复一次
,–>逗号,配合f和t使用,反方向重复一次
10、
标记文本
mchar用字母char标记当前光标的位置
`char移至char所标记处
'char移至char标记所在行的开头处
"移至当前行上一次所在位置(在光标移动之后)――一个双引号
''移至当前行上第一次所在位置的行的开头处(在光标移动之后)――两个单引号
ctrl+f向下翻页,ctrl+b向上翻页(对于telnet上去的时候比较有用)
shift+4到本行末尾,shift+6到本行开头
11、追加到缓冲区
对于已经有内容的缓冲区,可以继续追加内容在其后面,例如:
"Ad4w删除光标后4个字,并附加到缓冲区a
"Ay)取样从光标到文件尾的内容,并附加到缓冲区a
"K3yy取样从光标所在行起的3行内容,并附加到缓冲区k
注意:在追加缓冲区的命令中,原缓冲区的名字一定要大写,才能将内容追加进去,否则是覆盖原缓冲区的内容。追加内容在原缓冲
区末尾另起一行。
12、在:命令行模式下,首先可以确定命令的范围
.表示当前行;数字表示行号,如1表示第一行,2表示第二行;$表示最后一行
范围用,分隔
然后用命令
d表示删除,y表示复制……大家都知道的
最后说一句,%表示全文
:%d
是删除全文
13、恢复前几次操作应用什么命令呀?:em52:
14、:n,n1d
n和n1都是行数,d是删除这些行.表示当前的行。
:n
n是行数,直接转到n行。
:r文件名
把文件添加到当前的文件中
:n,n1w文件名
把从n行到n1行写道另外一个文件中
15、查找:
在一个单词上用*,就向下查找此单词,#是向上
用/
替换:
如有一文件,内容为:
aa
bb
cc
dd
用:%s/.*/printf("&is:%dn",&)/
文件内容为变为:
printf("aais:%dn",aa)
printf("bbis:%dn",bb)
printf("ccis:%dn",cc)
printf("ddis:%dn",dd)
&为查找到的内容
用:~为重复上一次替换
用系统命令编辑:
如有一文件,内容为:
333
222
334
444
111
553
554
233
运行命令:%!sort文件内容为:
111
222
233
333
334
444
553
554
用此方法可以使用许多系统命令进行编辑,大家可以灵活运用
其他特殊用法:
用q:看一看有什么用?可以编辑你用过的命令
程序中在一个调用函数(如:printf)上用K,可以直接调出printf的帮助
这些是我比较常用的,并且我觉的很有用的命令,敬请指教。
16、、:n1,n2wfilename(把行N1-N2之间内容写入新文件FILENAME)
:.=(显示光标所在行的行号)
u(恢复上一次的操作)
:!(shell-command执行SHELL命令的操作)
:n(直接把光标定义到N行)
:line1,line2mline3:将line1–line2之间的内容移到line3下相当于word的剪贴
:line1,line2tline3:将line1–line2之间的内容copyline3下,相当于word的粘贴
17、由于vi是建立在EX上的所以当键入:时就来到了EX命令状态
:abstringstrings
例如":abusaUnitedStatesofAmerica",
当你在文件里插入usa时
UnitedStatesofAmerica就蹦出来了
:mapkeysnew_q
定义你当前键盘命令
:t[all]
viorex的编辑状态
如显示每行:tnu
18、
3、把文件内容反转:g/^/m0/——〉这个m0怎么解析呢?
valentine解释:
xp和ddp应该理解为删除一个字符(x)和删除一行(dd),然后在p(paste),这样便不需记新命令了.
把文件内容反转(按行反转)
:g/^/m0/应该是:g/^/m0无最后的/
m–>move
0–>lineNo1
试想,从第1行开始,每一行依次放在文件的开头处,会有什么结果???
##一些环境配置
tnocp
该命令指定让VIM工作在不兼容模式下,如果使用":tcp"命令打开了兼容模式开关的话,VIM将尽可能地模仿vi的操作模式.推
荐大家使用VIM的不兼容模式,可以在你的.vimrc中的第一行写上:"tnocp"
tru
该命令打开VIM的状态栏标尺,能即时显示当前光标所在位置在文件中的行号、列号,以及对应的整个文件的百分比
thls
搜索时高亮显示被找到的文本
tis
搜索时在未完全输入完毕要检索的文本时就开始检索。
syntaxon
打开关键字上色
tencoding=cp936
设置当前字符编码为简体中文。这里还有一段能够自动判断文件的encoding,
自动选择合适的编码的.vimrc代码,感兴趣的话可以放到自己的配置文件中使用:
"Encodingttings
ifhas("multi_byte")
"Setfileencodingpriority
ifgetfsize(expand("%"))>0
tfileencodings=ucs-bom,utf-8,cp936,big5,euc-jp,euc-kr,latin1
el
tfileencodings=cp936,big5,euc-jp,euc-kr,latin1
endif
"CJKenvironmentdetectionandcorrespondingtting
ifv:lang=~"^zh_CN"
"Ucp936tosupportGBK,euc-cn==gb2312
tencoding=cp936
ttermencoding=cp936
tfileencoding=cp936
elifv:lang=~"^zh_TW"
"cp950,big5oreuc-tw
"Aretheyequaltoeachother?
tencoding=big5
ttermencoding=big5
tfileencoding=big5
elifv:lang=~"^ko"
"Copiedfromsomeone'sdotfile,untested
tencoding=euc-kr
ttermencoding=euc-kr
tfileencoding=euc-kr
elifv:lang=~"^ja_JP"
"Copiedfromsomeone'sdotfile,unteste
tencoding=euc-jp
ttermencoding=euc-jp
tfileencoding=euc-jp
endif
"DetectUTF-8locale,andreplaceCJKttingifneeded
ifv:lang=~"utf8$"||v:lang=~"UTF-8$"
tencoding=utf-8
ttermencoding=utf-8
tfileencoding=utf-8
endif
el
echoerr"Sorry,thisversionof(g)vimwasnotcompiledwithmulti_byte"
endif
tsw=4
自动缩进的时候,缩进尺寸为4个空格.
tts=4
Tab宽度为4个字符。
tet
编辑时将所有Tab替换为空格。
tsm
显示括号配对情况。打开这个选项后,当输入后括号(包括小括号、中括号、大括号)
的时候,光标会跳回前括号片刻,然后跳回来,以此显示括号的配对情况。
本文发布于:2023-03-15 03:38:42,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1678822723257656.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:只读模式怎么取消.doc
本文 PDF 下载地址:只读模式怎么取消.pdf
留言与评论(共有 0 条评论) |