老男人百科 > 百科 > 正文

centos的编辑模式怎么这么难进(centos中vi p怎么用)

2023-05-14 16:13:25 阅读( 5371)

VI的工作模式Vi有三种基本的工作模式:1.指令模式(CommandMode):指令模式主要使用方向键移动光标位置进行文字的编辑2.文本输入模式(InputMode):在指令模式下(CommandMode)按a/A键、i/I键、o/O键进入文本模式3.行末模式(LastlineMode):末行模式

VI的工作模式

Vi有三种基本工作模式:

1.命令模式:命令模式主要使用方向键移动光标位置进行文本编辑。

2.文本输入模式:在命令模式下,按a/a键、i/I键和o/o键进入文本模式。

3.末行模式:末行模式主要执行文本编辑的一些辅助功能,如字符串搜索、替换、文件保存等。

在文本输入模式下按ESC键进入命令模式。

命令模式输入:进入最后一行模式。

如果在最后一行模式中有指令错误,它将返回到命令模式。

VI命令常用用法

下面是最基本最常用的vi命令~折腾vps就够了,比如退出vi的命令等等~

0、进入vi的命令

Vi filename:打开或创建一个新文件,并将光标放在第一行的开头。

Vi n filename:打开文件并将光标放在第n行的开头。

Vi filename:打开文件,将光标放在行首。

Vi /pattern filename:打开文件,将光标放在与模式匹配的第一个字符串上。

Vi -r文件名:上次用Vi编辑时系统崩溃,文件名恢复。

Vifilename.文件名:打开多个文件,依次编辑。

1、指令模式(Command Mode)

向下移动一页。

向上翻页-向上移动一页。

0-光标移动到行首。

h-将光标向左移动一格。

l-将光标向右移动一格。

j 光标下移一行

k 光标上移一行

$+A将光标移动到该行最后

d+方向键删除文字

dd 删除整行

pp 整行复制

r 修改光标所在的字符

S 删除光标所在的列,并进入输入模式

2、文本输入模式(Input Mode)

a 在光标后开始插入

A 在行尾开始插入

i 从光标所在位置前面开始插入

I 从光标所在列的第一个非空白字元前面开始插入

o 在光标所在列下新增一列并进入输入模式

O 在光标所在列上方新增一列并进入输入模式

ESC 返回命令行模式

3、末行模式(Last line Mode)

:q 结束Vi程序,如果文件有过修改,先保存文件

:q! 强制退出Vi程序(不保存修改)

:wq 保存修改并退出程序

ZZ保存修改并退出程序(在没有开启Caps Lock时按住Shift键再按两个z键)

:set num 设置行号

搬移与复制

==========

利用delete 及put 指令可完成资料搬移之目的。

利用yank 及put 指令可完成资料复制之目的。

yank 和delete 可将指定的资料复制到记忆体缓冲区,而藉由put 指令

可将缓冲区内的资料复制到萤幕上。

例:

搬移一行在该行执行dd

游标移至目的地

执行p

复制一行在该行执行yy

游标移至目的地

执行p.指令重复

=========

在指令模式中,可在指令前面加入一数字n,则此指令动作会重复执行n

次。

例:

删除10行10dd

复制10行10yy

游标移至目的地

p

指标往下移10行10j

.取消前一动作(Undo)

===================

即复原执行上一指令前的内容。

u 恢复最後一个指令之前的结果。

U 恢复游标该行之所有改变。..搜寻

=====

在vi中可搜寻某一字串,使游标移至该处。

/字串往游标之後寻找该字串。

?字串往游标之前寻找该字串。

n 往下继续寻找下一个相同的字串。

N 往上继续寻找下一个相同的字串。

.资料的连接

===========

J 句子的连接。将游标所在之下一行连接至游标该行的後面。

若某行资料太长亦可将其分成两行,只要将游标移至分开点,进入输入模式

(可利用a、i等指令)再按《Enter》 即可。

..环境的设定

===========

:set nu 设定资料的行号。

:set nonu 取消行号设定。

:set ai 自动内缩。

:set noai 取消自动内缩。

自动内缩(automatic indentation)

在编辑文件或程式时,有时会遇到需要内缩的状况,『:set ai』即提供自

动内缩的功能,用下例解释之:

vi test

(进入编辑视窗後)

this is the test for auto indent

《Tab》 start indent :set ai (设自动内缩)

《Tab》 data

《Tab》 data

《Tab》 data :set noai (取消自动内缩)

the end of auto indent.

注:Ctrld 可删除《Tab》 字元。

从当前位置删除到行尾

d$

从当前位置复制到行尾

y$ 如果要粘贴到其他地方p 就可以了

13.

:%s/old_word/new_word/g

这个指令是于在整个文件中替换特定字符串14.光标控制

k:上移nk 上移n行

j:下移nj 下移n行

将光标移到第n行,按下mk

将光标移到第m行,按下'ay'k

即将第n到m的行存到a寄存器,以此类推,b,c.寄存器等

这样就可以将你常用的需要复用的内容粘贴到不同的寄存器中以备用

想粘贴到某处,直接将光标移到某地,按下‘ap 即可,以此类推,b,c.寄存器等

在当前屏幕中

H 跳到第一行

M 跳到中间一行

L 跳到最后一行

15.

表8-2 删除命令删除命令操作

d l 删除当前字符(与x命令功能相同)

d 0 删除到某一行的开始位置

d ^ 删除到某一行的第一个字符位置(不包括空格或TA B字符)

d w 删除到某个单词的结尾位置

d 3 w 删除到第三个单词的结尾位置

d b 删除到某个单词的开始位置

d W 删除到某个以空格作为分隔符的单词的结尾位置

d B 删除到某个以空格作为分隔符的单词的开始位置

d 7 B 删除到前面7个以空格作为分隔符的单词的开始位置

d) 删除到某个语句的结尾位置

d 4) 删除到第四个语句的结尾位置

d( 删除到某个语句的开始位置

d } 删除到某个段落的结尾位置

d { 删除到某个段落的开始位置

d 7 { 删除到当前段落起始位置之前的第7个段落位置

d d 删除当前行

d /t e x t 删除从文本中出现“ t e x t”中所指定字样的位置,一直向前直到下一个该字样所出现的

位置(但不包括该字样)之间的内容

d fc 删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括

该字符)之间的内容

d tc 删除当前行直到下一个字符“ c”所出现位置之间的内容

D 删除到某一行的结尾

d $ 删除到某一行的结尾

5 d d 删除从当前行所开始的5行内容

d L 删除直到屏幕上最后一行的内容

d H 删除直到屏幕上第一行的内容

d G 删除直到工作缓存区结尾的内容

d 1 G 删除直到工作缓存区开始的内容替换命令

替换命令操作

s 将当前字符替换为一个或多个字符

S 将当前行替换为一个或多个字符

5 s 将从当前字符开始的5个字符替换为一个或多个字符vi替换使用规则:

:g/s1/s/s2/s3/g

第一个g表示对每一个包括s1的行都进行替换,第二个g表示对每一行包括s1的行所有的s2都用s3替换

s表示替换,s2是要被替换的字符串,他可以和s1相同(如果相同的话用//代替),s3是替换字符串

专题页