aix linux vi区别,AIX UNIX下的vi命令

⒈ 进入vi:

要使用vi,应先注册进入一用户,然后如下所示进行操作:

$ vi

($ 为提示符)

⒉ 退出vi:

(1) "Esc"

退出插入方式进入命令方式

:w           将文件存盘

:q

          退出vi

(2) "Esc"

退出插入方式进入命令方式

:q!          无条件退出vi,修改内容不存盘

(3)

"Esc"               退出插入方式进入命令方式

:x

将文件存盘并退出vi

⒊ 临时退出vi:

(1) "Esc"               退出插入方式进入命令方式

:!command    执行命令command

命令执行完成后,按返回编辑画面。

(2) "Esc"

退出插入方式进入命令方式

:!sh         进入子shell

进入子shell后出现$提示符,按Ctrl_d退出子shell,再按返回编辑画面。

(3)

"Esc"               退出插入方式进入命令方式

!!command

执行命令command的结果代替当前行

【注】 前面没有“∶”,当前行原来的内容消失,代之以命令执行的结果。

移动光标及屏幕命令:

(1) 移动一个字符的位置

--------------------------------------------------------

h

左     也可一次移动n个字符,如5h,就向左

l          右     移动5个字符的位置。

--------------------------------------------------------

(2) 移动一行的位置

--------------------------------------------------------

j

下         也可一次移动n个字符,如5j,就向下

k          上         移动5行。

nG         移到第n行

:n 移到第n行

--------------------------------------------------------

(3) 移动一个字的位置

--------------------------------------------------------

W或w       右移一字

(光标 ①小写字母键把标点及非字母符号

定位在字首)     (例如,!@#$%^&*

()_-=+等)也看作

E或e       右移一字 (光标 一个词;

定位在字尾)

②大写字母以空格为字的分界符;

B或b       左移一字 (光标 ③前面加数字n将移动n个字的位置;

定位在字首)    ④从行尾右移则移向下一行的行首,

从行首左移则移向上一行的行尾。

--------------------------------------------------------

(4) 移动一句的位置

--------------------------------------------------------

(

移至句首       以.?!后加两个空格或换行符的字

)          移至句尾       符序列定义为句子。

n

(         执行n次 (

n)         执行n次)

--------------------------------------------------------

(5) 屏幕滚动

--------------------------------------------------------

Ctrl_u

上滚半屏       大写字母与小写字母等价

Ctrl_d     下滚半屏

Ctrl_f     下滚一屏

Ctrl_b     上滚一屏

--------------------------------------------------------

(6) 其他常用命令

--------------------------------------------------------

0

行首              ①这些命令都在命令方式下

^          移到行首第一个可

使用;

见字符处          ②H、L、G、M都必须是大写

$

行尾                字母;

Ctrl_G     显示当前行行号    ③z是小写字母,且按回车才

Ctrl_L     屏幕重显            有效。

H          屏幕左上角

L

屏幕正文最低行

G          文件最末行

M          屏幕中间行

z   当前行翻到屏幕顶

nz 第n行翻到屏幕顶

--------------------------------------------------------

⒌ 插入命令

--------------------------------------------------------

I

当前行的行首前插入 ①按"Esc"就退出插入方式

A           当前行的行尾附加    ②大小写字母作用不同

i           光标前插入

a           光标后插入

O           当前行前开新行

o           当前行后开新行

>>          当前行整个右移一个制表符的位置

<

--------------------------------------------------------

⒍ 删除命令

--------------------------------------------------------

dd

删除当前行,并将删   ①在命令dd,dw,x,X前加数

除的内容存入缓冲区

dw

删除一个词 (光标到词    字n等于命令执行n次

尾部分)              ②Ctrl_u

要在插入方式下

x           删除光标所在字符,     使用,按下ESC键后生效

并将删除的内容存入缓

冲区

X

删除光标之前字符,

并将删除的内容存入缓

冲区

D,d$

删除光标至行尾的内容

d0          删除光标至行首的内容

d^

删除光标至行首第一个

可见字符的内容

Ctrl_u      删除刚插入的所有内容

--------------------------------------------------------

要删除刚插入的内容,应在没按ESC键(插入状态下)时按下

Ctrl_u键。光标回到插入的开始处,原有插入的正文仍显示在屏

幕上,它将被键入的新内容所代替。当按下ESC键后,原插入

的正文将被删除。下面是几个删除的例子:

3x

删除光标后三个字符

3X         删除光标前三个字符

2dd

删除当前行和下面的一行共两行

:15,20d    删除第15到20行

:.,$d

删除当前行到最后一行。"."代表当前行,$代

表最后一行。

:.,+3d

删除当前行和下面的三行

:.,-3d     删除当前行和上面的三行

⒎ 恢复

按下ESC键

进入命令方式

按下u          恢复到上一命令以前的状态

再按下u        恢复到上一个u以前的状态

重复一条命令

任何一条编辑命令执行一次后,如果还需要再执行同样的命令,应该用重复命令“.”

来节省时间,例如在一行中连续插入三个字符串abcdef,那么可以用如下的方法:

键入i          进入插入方式

键入abcdef     插入第一个字符串

按下ESC键

进入命令方式

光标移到正确

的位置,连续

按两个园点.    重复插入两个字符串abcdef

搜索命令

(1)模式匹配特殊字

--------------------------------------------------------

^

一行的开始

$          一行的末尾,或文件的最后一行

.           任一字符 (除换行符外)

[

]         字符集内的任一字符,如[abc]代表a,b,c中的任一

字符,[1-5]代表1,2,3,4,5中的任一个。

[^ ]

字符集外的任一字符,如[^abc]代表除a,b,c外的任

一字符

\

转义,去掉特殊字符的特殊意义,如\$仅代表$字

符本身

--------------------------------------------------------

(2)常用搜索命令

--------------------------------------------------------

/串

向下搜索

串 向上搜索

n           继续搜索

N

继续向相反方向搜索

--------------------------------------------------------

搜索命令必须在命令方式下使用。按下"/"或"?"时它会自动出现在状态行上,键入要搜

索的字符串并按回车,光标会移动到该字符串所在行,并定位在该字符串的第一个字符上。

下面的格式把光标移到字符上一行的行首:

/字符串/-

下面是一些例子:

/abc/-2

光标移到含abc的行的上两行的行首

/abc/+2    光标移到含abc的行的下两行的行首

123mn

   向上搜索串123mn

n

继续执行前面的搜索命令

/^this   搜索开头为this的行

/p\.r\.c

向下搜索字符串p.r.c,因为"."是特殊字符,所

以前面要加反斜线"\"转义。

作标记

在光标所在处作一标记,以备需要时及时查找到该处,这也是一种重要的检索方式,完

成该功能的命令是m。

标记命令

--------------------------------------------------------

m标记       光标所在处作标记      ①标记是任选的小写字母

`标记       移到标记位置          ②注意左撇 ' 与右撇

`

'标记       移到有标记的行的开头    的不同

--------------------------------------------------------

例如有一正文前三行内容如下:

1 This is Line one

2

3 This is Line

two

把光标移到第一行的L处,键入 mb,作标记b (不要回车),以后某一时候要删除从当前

光标处到标记处,只要键入: d`b

即可。

如果再把光标移到第三行的"n"处,再作一标记s,只要键入:

ms即可。如果光标在别的

地方,什么时候想把光标移到第三行的"n"处,只要键入: `s 即可。如果仅是想把光标移到

第三行,只要键入: 's

即可。

⒒ 搜索并代替

对文件进行更复杂的修改,最好用搜索替代合在一起的命令。这类命令往往是一些简单

命令的组合。

搜索替代命令

--------------------------------------------------------

g

全局搜索   用于开头,代表搜索所有行,用于末

尾,代表搜索整行。

s           替代命令   如果出现在命令行中,应与其他命令

用"/"隔开。

p           显示命令

c           提问命令

对要替代的内容用符号"^"提示,若按

下"y"才发生替换,否则不替换。

v           不匹配命令

--------------------------------------------------------

搜索替代命令是在ex转换方式下使用的,即按下"ESC"键和":"之后才能使用。键入的命

令出现在状态行上,按回车执行。被搜索替代的字符串两边要加斜线"/",

如果不使用全局

命令"g",则只对第一个找到的字符串起作用。命令前面也可以加地址范围的选择。

下面是使用命令的例子:

:s/abc/xyz/        用xyz替换当前行找到的第一个abc

:s/ab/x/g          用x替换当前行所有的ab

:g/22/s//456/

每行找到的第一个字符串"22"都用

字符串"456"替换

:g/22/s//456/g

全文找到的所有字符串"22"都用串

"456"替换,第一个"g"代表"每行",

第二个"g"代表一行中的全部。

:g/this/p          显示所有含"this"的行

:v/this/p          显示所有不含"this"的行

:g!/this/p         显示所有不含"this"的行

:g/^/s//abc/g

在文件每一行开头插入abc,"^"代

表行首。

:g/this/s//THIS/gp

全文所有"this"都用"THIS"替代,

并且显示发生替代的行。

:3,7s/this/THIS/

第3行到第7行中第一个"this"都用

"THIS"替代。

:3,7s/this/THIS/g

第3行到第7行中所有的"this"都用

"THIS"替代。

:1,$s/this/THIS/g 第一行到最后一行

(全文)中所有的

"this"都用"THIS"替代。

⒓ 替代

在命令方式下执行替代命令,按"ESC"结束。

--------------------------------------------------------

r

替代一个字符

R           替代可以到行尾,超过行尾的部分被附加

ns

替代n个字符,超过数目的输入被插入

nS          删除n行,并处于插入状态

cw

替代一个字

cc          删除当前行,并进入插入状态

--------------------------------------------------------

⒔ 其他常用命令

--------------------------------------------------------

:r 文件名

将文件名所指文件读入,并放在当前行下面

nyw         将光标后的n个字放入缓冲区

"anyw

将光标后的n个字放入a缓冲区

"Anyw       将光标后的n个字附加到a缓冲区

nyy

将当前行及下面的行共n行放入缓冲区

"anyy       将当前行及下面的行共n行放入a缓冲区,a可用其

他小写字母代替

"Anyy       将当前行及下面的行共n行附加到a缓冲区,A可用

其他大写字母代替

p          将缓冲区的内容放入当前行下面或光标后,这取决

于缓冲区中是否有完整的行。

P          将缓冲区的内容放入当前行上面或光标前,这取决

于缓冲区中是否有完整的行。

"ap         将命令"ayy保存的内容放入当前行下面,a可用其

他小写字母代替

m           移动正文

t           拷贝正文

w

写文件

--------------------------------------------------------

下面是一些例子:

:r fn       将文件fn读入,并放在当前行下面

2yy

将当前行及下一行放入缓冲区

p           将执行2yy保存的两行放到当前行下面

2,4m6

将第2到4行移到第6行下面

2,4t6       将第2到4行拷贝到第6行下面

2,4wfn

将第2到4行写到文件fn中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值