Unix Vi命令

vi(Visual)是以视觉为导向的全屏幕编辑器、共分为三种方式(mode):

command方式:

任何输入都会作为编辑命令,而不会出现在屏幕上,若输入错误则有“岬”的声音;任何输入

都引起立即反映

insert方式:

任何输入的数据都置于编辑寄存器。在command方式下输入(I,a,A等),可进入insert方式,insert方式下按ESC,可跳回command方式。

escape方式:

以“:”或者“/”为前导的指令,出现在屏幕的最下一行,任何输入都被当成特别指令。

进入vi(在系统提示符下面输入以下指令):

vi 进入vi而不读入任何文件

vi filename进入vi并读入指定名称的文件(新、旧文件均可)。

vi +n filename进入vi并且由文件的第几行开始。

vi +filename 进入vi并且由文件的最后一行开始。

vi + /word filename 进入vi并且由文件的word这个字开始。

vi filename(s) 进入vi并且将各指定文件列入名单内,第一个文件先读入。

vedit进入vi并且在输入方式时会在状态行显示“INSERT MODE"

编辑数个文件(利用vi filename(s))进入vi后)

:args 显示编辑名单中的各个文件名

:n读入编辑名单中的下一个文件

:rew读入编辑名单中的第一个文件

:e#读入编辑名单内的前一个文件

:e file 读入另一个文件进vi(此文件可不在编辑名单内),若原文件经修改还没有存档,则应先以: w 存档。

:e! file强迫读入另一个文件进入vi,原文件不作存档动作。

存储及退出vi

:w filename存入指定文件,但未退出vi(若未指定文件名则为当前工作的文件名)。

:wq或者 :x或者zz存文件,并且退出vi.

:q不作任何修改并退出vi

:q!放弃任何修改并退出vi

:!command暂时退出vi并执行shell指令,执行完毕后再回到vi

:sh暂时退出vi到系统下,结束时按Ctrl + d则回到vi

加数据指令

i在关标位置开始插入字符,结束时候按ESC键。

I在光标所在行的最前面开始加字,结束时按ESC键。

a在光标位置后开始加字,结束时按ESC键。

A在光标所在行的最后面开始加字,结束时按ESC键。

o在光标下加一空白行并开始加字,结束时按ESC键。

O在光标上加一空白行并开始加字,结束时按ESC键。

!command执行shell指令,并把结果加在光标所在行的下一行。

删除指令

nx删除由光标位置起始的n个字符(含光标位置,按一个x表示删除光标所在的字符)

nX 删除由光标位置起始的n个字符(不含光标位置)。

ndw删除光标位置其实的n个字符组(word)

d0将行的开始到光标位置的字符全部删除。

d$D 将光标位置起始到行尾的字符全部删除。

ndd将光标位置起始的n行(整行)删除(dd表示删除光标所在行)。

:start,endd删除文件的第startend行。

关标移动

0移到一行的开始

$移到一行的最后

[[移到文件开始位置

]]移到文件结束位置

nh往左移n

nl或者spacebar往右移n

nk向上移n

n+向上移n行,光标在该行的起始

ni 向下移n

n-向下移n行,光标在该行的起始

H移到屏幕的左上角

M移到屏幕的中间行开头

L移到屏幕的最后一行

G移到文件的最后一行

nG或者:n移到文件的第n

nw右移n个字组,标点符号属于字组

nW右移n个字组,标点符号不属于字组

nb左移n个字组,标点符号属于字组

nB左移n个字组,标点符号不属于字组

Ctrl + u屏幕上卷半个菜单

Ctrl + d屏幕下卷半个菜单

Ctrl + b屏幕上卷一个菜单

Ctrl + F屏幕下卷一个菜单

修改指令

r修改光标文件的字符

R从光标位置开始修改,结束时按ESC

new更改n组字符,结束时按ESC

ncc从光标所在位置开始更改n行,结束时按ESC

重排各行长度

i并按Enter将该行由光标所在处断开,并进入insert方式

J把下一行的数据连接到本行之后

寻找指令

/text从光标位置往下找字串text

?text从光标位置往上找字串text

n继续找下一个字串(在输入上面的寻找指令之后使用)

寻找并且取代指令

:getxt1/s/ /text2/options将各行的text1替换为text2

option=g表示文件中所有的text1均被取代,若未输入任何option,则只有各行中的第一个出现的text1被取代

option=go在屏幕显示各取代的行

option=gc在每个字串取代之前要求确认

Start,endgtext1/s/ / text2/options同上,只寻找并取代第start~end行。

:Start,ends/text1/text2/options

复制及移动文件

:first,last co dest将first last行的数据复制到目标行(dest)下面

:Start,endm dest将start end行的数据移动到目标行(dest)下。

:r filename将指定文件的内容读入光标所在行下。

nY将光标所在位置开始的n行数据暂存

p复制暂存数据在光标的下一行

P复制暂存数据在光标的上一行

其他命令

.重复前一指令

u取消前一指令

Ctrl + l刷新屏幕显示

:set number显示文件的行号,但不会存文件

:set nonumber解除行号显示

:set ai设置每行起始位置(以光标当前位置为起始)

:set noai取消行起始位置设定

:f <Ctrl> + g告诉用户有关现行编辑文件的数据

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值