vi编辑器

一、Vi及其三种运行模式
            1、Vi简介       Vi是Visual Interface的简称,它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制。
             2、Vi的三种运 行模式       Vi的三种基本工作模式:编辑模式、接入模式和命令模式(末行模式)。       在系统提示符后输入Vi和想要编辑(或建立)的文件 名,便可进入Vi。如果只输入Vi而不带文件名,也可进入Vi。然后输入所创建文件的内容。在退出Vi时,只需在退出命令后输入文件名即可。       进入Vi之后,首先进入的是编辑模式,进入编辑模式后Vi等待编辑命令输入而不是文本输入,也就是说这时输入的字母都将作为编辑命令来解释。       进入编辑模式后光标停在屏幕第一行首位上(用_表示),其余各行的行首均有一个“~”符号,表示该行为空行。最后一行是状态行,显示出当前正在编辑的文件 名及其状态。如果是[New File],则表示该文件是一个新建文件。如果输入Vi带文件名后,文件已在系统中存在,则在屏幕上显示出该文件的内容,并且光标停在第一行首位,在状态 行显示出该文件的文件名、行数和字符数。       在编辑模式下输入插入命令i、附加命令a、打开命令o、修改命令c、取代命令r或替代命令s都可以进 入插入模式。在插入模式下,用户输入的任何字符都被Vi当作文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按Esc即 可。       在编辑模式下,用户按“:”键即可进入命令模式,此时Vi会在显示窗口的最后一行显示一个“:”,作为命令模式的提示符,等待用户输入命 令。末行命令执行完后,Vi自动回到编辑模式。

 

二、进入插入模式    在编辑模式下,输入以下命令均可进入插入模式。

类型
命令
说明

进入插入模式
i
从光标所在位置前开始插入文本

I
将光标移动到当前行行首,然后在其前插入文本

a
用于在光标当前所在位置之后追加新文本

A
将光标移动到所在行行尾,在那里插入新文本

o
在光标所在行的下面新开一行,并将光标置于行首,等待输入文本

O
在光标所在行的上面插入一行,并将光标置于行首,等待输入文本

 

三、编辑模式下的操作

类型

命令

说明

光标定位

G

将光标移动到文件最后一行

替换和删除

rc

用字符c替换光标所指向的渌前字符

nrc

用字符c替换光标所指向的前n个字符

x

删除光标处的字符

nx

删除从光标所在位置开始向右的n个字符

dw

删除一个单词。若光标个在某个单词中间,则从光标所在位置开始删至词尾并连同空格

ndw

删除n个指定的单词

db

删除光标所在位置之前的一个词

ndb

删除光标所在位置之前的n个词

dd

删除当前行

ndd

删除当前行及向后n-1行的内容

复制和粘贴

YY

将当前行的内容复制到缓冲区

nYY

将当前开始的n行内容复制到缓冲区

p

将缓冲区的内容写到光村所在位置

 

/str

往右移动到有str的地方

?str

往左移动到有str的地方

n

向相同的方向移动到有str的地方

N

向相反的方向移动到有str的地方

撤销和重复

u

取消前一次的误操作

.

再执行一次前面刚完成的某个复杂的命令

退出

ZZ

存盘退出

ZQ

不保存退出

 

四、命令行模式下的操作

类型

命令

说明

跳行

:n

跳到第n行

退出

:q

退出Vi

:wq

保存退出Vi

:q!

不保存退出Vi

文件相关

:w

将当前编辑的内容存盘

:w file

将当前编辑的内容写入到file文件中

:n1,n2w file

将从n1开始到n2结束的行写到file文件中

:nw file

将第n行写到file文件中

:1,.w file

将从第一行起到光标所在位置的所有内容写入到file文件中

:.,$w file

将从光标当前位置起到文件结尾的所有内容写入到file文件中

:r file

打开另一个文件file

:e file

新建另一个文件file

:f file

将当前文件改名为file文件

字符串搜索、替换、删除

:/str/

从当前光标开始往右移动到有str 的地方

str?

从当前光标开始往左移动到有str 的地方

:/str/w file

将包含有str的行写入到file文件中

:/str1/,/str2/w file

将从str1开始到str2结束的内容写入到file文件中

:s/str1/str2/

将第一个str1替换为str2

:s/str1/str2/g

将所有的str1替换为str2

:.,$ s/str1/str2/g

将从当前位置到结尾的所有str1替换为str2

文本的复制、移动和删除

:n1,n2 co n3

将从n1行到n2行的内容复制到n3后面

:n1,n2 m n3

将从n1行到n2行的内容移动到n3后面

:d

删除当前行

:nd

删除从当前行开始的n行

:n1,n2 d

删除从n1行开始到n2行结束的所有内容

:.,$ d

删除从当前行开始到结尾的所有内容

:/str1/,/str2/d

删除从str1开始到str2为止的所有内容

执行shell
命令

:!Cmd

运行shell命令cmd

n1,n2 w !Cmd

将n1到n2行的内容作为Cmd命令输入。如果不指定n1和n2,则将整个文件的内容作为命令Cmd的输入

:r !Cmd

将命令运行的结果写入当前行的位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值