您的位置:首页 > 其它

vi 编辑器常用命令

2011-09-03 22:41 381 查看
vi使用手册

VI是unix上最常用的文本编辑工具,作为unix软件测试人员,有必要熟练掌握它。

发现solaris好多地方跟linux下的不太一样.于是google了这篇文档,好好的学习学习了

第七章 vi编辑器

翻译:hfzheng

进入vi的命令

vi filename :打开或新建文件,并将光标置于第一行首

vi +n filename :打开文件,并将光标置于第n行首

vi + filename :打开文件,并将光标置于最后一行首

vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处

vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename

vi filename....filename :打开多个文件,依次编辑

vi介绍

vi编辑器是一个用于创建和修改文本文件的交互式编辑器。使用vi编辑器时所有的文本编辑都放在一个缓冲区中,可以把所作的修改写到磁盘也可以放弃所做的修改。

对于那些有志于成为系统管理员的人而言,掌握如何使用vi编辑器是非常重要的。你必须知道如何使用vi编辑器,特别是在窗口环境不可用的时候。

Vi编辑器的工作模式

Vi编辑器是一个命令行编辑器,有三种基本的操作模式:

命令模式

文本输入模式(编辑模式)

最后行模式

命令模式:vi的默认模式,在命令模式下,你可以键入命令来删除、更改、移动文本;定位光标;搜索文本字符串、退出vi编辑器。

文本输入模式(编辑模式):在编辑模式下,你可以往文件中输入文本。要使vi编辑器进入编辑模式下,可以采用以下三种不同的命令:

i插入

o打开

a 添加

最后行模式:当处于命令模式下时,通过键入:你可以执行更先进的编辑命令,键入:后,将使你处于屏幕的最后一行,这就称为最后行模式。然而,所有的命令都是由命令模式发起的。

模式间的切换

通过键入I、o、a命令,vi编辑器将离开默认的命令模式,进入编辑模式。

在编辑模式下,你所键入的所有文本都不会被翻译成命令,这时,所有键入的文本都会被保存到文件中。

当你完成了文本的输入后,按Esc键vi将回到命令模式下,一旦回到命令模式,你可以保存文件,退出vi编辑器,例如:

1、键入vi filename来创建一个文件;

2、键入I命令来插入文本;

3、按Esc键回到命令模式;

4、键入:wq来保存到文件,退出vi编辑器。

调用vi编辑器

要创建一个新文件,调用带新文件名称的vi编辑器。也可以键入命令来创建、编辑、查看一个文件。

命令格式

vi options filename

view filename

输入命令

要插入或者添加文本,使用下面的选项:

命令含义

a 在光标右侧输入文本

A 在光标所在行的末尾输入文本

I在光标左侧输入文本

I 在光标所在行的开头输入文本

O在光标所在行的下一行开始新行

O在光标所在行的上一行开始新行

备注:vi编辑器是大小写敏感的,因此,使用命令时注意正确的大小写。

定位命令

下面列出的是控制光标的移动键

键功能

h,左箭头,退格键光标左移一个空格

j,下箭头光标下移一行

k,上箭头光标上移一行

l,右箭头,空格键光标右移一个空格

w光标右移,到下一个字开头

b光标左移,到前一个字开头

e光标右移,到下一个字末尾

$光标右移到行结尾

0,^光标左移到行开头

回车键光标移到下一行开头

control-f下翻一屏

control-d下滚半屏

control-b上翻一屏

control-u上滚半屏

control-L刷新屏幕

编辑命令

以下部分讲解vi编辑器中的编辑命令

删除文本

要删除文本,使用下面选项:

vi编辑器中的文本删除命令

命令功能

x删除光标所在处的一个字符

dw删除字(或者删除字的一部分,从光标所在处到字结尾)

dd删除光标所在行

D删除光标光标所在处之右的行

:5,10d删除5-10行

备注:命令3dw删除光标所在处开始的三个字,同样,3dd删除光标所在行开始的3行。

撤销、重复、修改文本命令

要修改文本、撤销修改或者是重复编辑命令,使用下面的编辑命令,许多命令是vi编辑器进入编辑模式,要返回命令模式,按Esc键即可:

命令功能

cw修改字(部分字,从光标所在处开始到一个字的结尾)

R从当前光标所在处位置开始替换字符(注:vi将进入编辑模式)

C从光标坐在处开始修改,到行末尾结束

s用字符替换字符串

r替换当前光标所在的字符

J合并当前行以及下面行

Xp转置光标所在处字符与另一字符

~更改光标所在处字符大小写

u放弃最近的修改

U放弃对当前行所作的修改

:u放弃上一个最后行命令(用于最后行模式)

:r filename在当前光标所在处读入文件文本

查找和替换文本,使用以下选项:

命令功能

/string向下查找字符串string

?string向上查找字符串string

n查找字符串string的下一个出现

N查找字符串string的上一个出现

:%s/old/new/g 全局查找和替换

拷贝和粘贴文本

拷贝命令把需要拷贝的文本放入一个临时缓冲区,粘贴命令从临时缓冲区中读取文本,并把文本写道当前文档的指定位置。拷贝和粘贴使用的选项如下:

命令功能

yy(小写)复制一行文本,并将他们放入到临时缓冲区

p(小写)将临时缓冲区中的内容放置到光标后面的位置

P(大写)将临时缓冲区中的内容放置到光标前面的位置

:l,3 co 5拷贝1-3行的文本,并把它放置在第5行后面

:4,6 m 8移动4-6行到第8行,第6行称为第8行,第5行称为第7行,第4行称为第6行

保存和退出文件

要保存和退出文件,使用如下选项:

命令功能

:w保存文件,不退出vi

:w new_filename保存到文件new_filename中

:wq保存修改退出vi

:x保存修改并退出vi

ZZ保存修改且退出vi

:q!不保存修改,退出vi

:wq!保存修改,退出vi

定制vi会话

vi编辑器里面包括了定制vi会话的操作,例如:

1、显示行号

2、显示不可视字符,例如tab和行结尾字符

在命令模式下使用set命令可以控制这些选项:

编辑定制vi会话命令

命令功能

:set nu显示行号

:set nonu隐藏行号

:set ic设置搜索时忽略大小写

:set noic搜索时对大小写敏感

:set list显示不可视字符

:set nolist不显示不可视字符

:set showmode显示当前操作模式

:set shownomode不显示当前操作模式

:set显示所有的vi环境变量设置

:set all显示所有的vi环境变量可能取值及其当前设置值

你也可以把这些操作放在home目录下你创建的文件.exec中,set操作放在该文件中,不用带前面的:,一行一个命令,一旦该文件存在时,每次你开启一个vi会话时系统将取读取该文件来设置对应的vi环境变量。

要找某一特定行,使用下面的选项:

定位命令

命令 功能

G到文件最后一行

1G到文件的一行

:21到第21行

21G到第21行

进入vi的命令

vi filename :打开或新建文件,并将光标置于第一行首

vi +n filename :打开文件,并将光标置于第n行首

vi + filename :打开文件,并将光标置于最后一行首

vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处

vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename

vi filename....filename :打开多个文件,依次编辑

移动光标类命令

h :光标左移一个字符

l :光标右移一个字符

space:光标右移一个字符

Backspace:光标左移一个字符

k或Ctrl+p:光标上移一行

j或Ctrl+n :光标下移一行

Enter :光标下移一行

w或W :光标右移一个字至字首

b或B :光标左移一个字至字首

e或E :光标右移一个字j至字尾

) :光标移至句尾

( :光标移至句首

}:光标移至段落开头

{:光标移至段落结尾

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:从光标开始处向文件首搜索pattern

n:在同一方向重复上一次搜索命令

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:显示由面向行的命令修改过的数目

terse:显示简短的警告信息

warn:在转到别的文件时若没保存当前文件则显示NO write信息

nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符

nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始

mesg:允许vi显示其他用户用write写到自己终端上的信息

最后行方式命令

:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下

:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下

:n1,n2 d :将n1行到n2行之间的内容删除

:w :保存当前文件

:e filename:打开文件filename进行编辑

:x:保存当前文件并退出

:q:退出vi

:q!:不保存文件并退出vi

:!command:执行shell命令command

:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指

定n1,n2,则表示将整个文件内容作为command的输入

:r!command:将命令command的输出结果放到当前行 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: