vi编辑器(2)

来源:互联网 发布:网络安全保密协议 编辑:程序博客网 时间:2024/06/06 15:39

一,光标的移动

在文本中光标的移动很有用,可以提高文本编辑的效率。

在执行光标命令之前,先通过cd 转到root目录下,在该目录下有个install.log文件,文件内容庞大,是体验光标命令的好去处。


vi install.log进入输入模式开始进行以下命令练习:

在命令模式中可以使用命令进行以下操作。

(1)光标方向的移动,除了可以使用方向键,还可以使用以下命令

向上移动光标:k

向左移动光标:h

向右移动光标:l

向下移动光标:j

(2)翻页命令

Ctrl+F向前翻整页

Ctrl+U向前翻半页

Ctrl+B向后翻整页

Ctrl+D向后翻半页

(3)行内快数跳转

^移动到本行行首

$移动到本行行尾

(4)显示行号和取消行号(末行模式使用)

set nu显示行号

set nonu取消行号

通过输入:进入末行模式,set nu显示行号:

回车后显示行号:


通过输入:进入末行模式,set nonu取消行号,自动把行号隐藏掉。

(5)在命令模式下,使用以下命令可以快速的在行间跳转

1G跳转到文件首行

G跳转到尾行

#G跳转到文件的#行

二,编辑操作

咱们先建一个测试文件,再进行编辑命令使用。


(1)进入输入模式命令

i插入命令

a附加命令

o打开命令

c修改命令

r取代命令

s替换命令

Esc退出命令


测试一个i插入命令,输入内容,Esc退出,输入:号进入末行命令,wq!保存并强制退出,cat将文件内容打印在屏幕上:

创建test.txt文件,通过vi test.txt进入命里模式:


输入i后,进入输入模式,注意末尾的-- INSERT --,表示在输入模式下:

Esc退出输入模式,:号进入末行模式,保存退出:


通过cat命令查看test.txt文件内容:


(2)输入模式的操作

Home光标到行首

End 光标到行尾

Page Up和Page Down上下翻页

Delect删除光标位置的字符
通过vi test.txt进入文件,通过键盘上的对应以上命令的键测试功能。


(3)删除操作(命令模式使用)

x删除光标处的单个字符

dd删除光标所在行

dw删除当前字符到单词尾包括空格的所有字符

#x例如3x删除光标处向右的三个字符

#dd例如3dd从当前行开始向下删除三行文本


通过vi test.txt进入文件,通过键盘上的对应以上命令的键测试功能。

比如连续输入键盘上的dd,光标所在行的内容被删掉。

(4)撤销操作

u命令取消最近一次的操作,可以使用多次来恢复原有的操作

U取消所有操作

Ctrl+R可以恢复对使用u命令的操作


比如输入按键盘上的u键,刚才你通过上面dd命令删除的内容是不是又恢复了,类似于windows上的ctrl+z
(5)复制操作(在命令模式下进行)

yy命令复制当前整行的内容到vi缓冲区

yw复制当前光标所在位置到单词尾字符的内容到vi缓存区,相当于复制一个单词

y$复制光标所在位置到行尾内容到缓存区

y^复制光标所在位置到行首内容到缓存区

#yy例如:5yy就是复制5行

#yw例如:2yw就是复制两个单词

如果要复制第m行到第n行之间的内容,可以在末行模式中输入m,ny例如:3,5y复制第三行到第五行内容到缓存区。

测试yy命令,复制光标所在当前行,记得命令模式下进行,输入yy,不会给你写入yy的,这个命令只是你输入了,并不会显示在文本中,

如果显示在文本中,说明你是在输入模式下进行,退出到命令模式进行:


yy输入完后按下p键,复制完成后通过p进行粘贴操作,看到复制的效果了吗,通过移动光标的位置,复制到你想插入的行。

比如说我要复制多行,来个5行吧,多按几下p就够10行内容了,复制5行只需在命令模式下输入5yy,然后按p粘贴即可。

实际操作:

vi test.txt进入命里模式,输入5yy就可以复制从光标位置开始(包括光标所在位置)往下总的5行内容,然后p粘贴。

当你输入5yy时,注意最下方有个5 lines yanked,告诉你复制选中5行。


按下p粘贴,注意最下方的5 more lines,告诉你现在复制的是5行,最多可粘贴5行:


三,查找和替换
vi的查找和替换功能主要在末行模式完成:

(1)至上而下的查找

/ 要查找的字符窜,其中/代表从光标所在位置起开始查找,例如:/ work

(2)至下而上的查找
?要查找的字符窜 例如:/ work
(3)替换
:s/old/new用new替换行中首次出现的old

: s/old/new/g 用new替换行中所有出现的old

:#,# s/old/new/g用new替换从第#行到第#行中出现的old

:% s/old/new/g用new替换整篇中出现的old

如果替换的范围较大时,在所有的命令尾加一个c命令,强制每个替换需要用户进行确认,例如:s/old/new/c 或s/old/new/gc

四,恢复文件
vi在编辑某一个文件时,会生成一个临时文件,这个文件以 . 开头并以 .swp结尾。

正常退出该文件自动删除,如果意外退出例如忽然断电,该文件不会删除,我们在下次编辑时可以选择一下命令处理:

O只读打开,不改变文件内容

E继续编辑文件,不恢复.swp文件保存的内容

R将恢复上次编辑以后未保存文件内容

Q退出vi

D删除.swp文件

或者使用vi -r 文件名来恢复未保存的内容


0 0
原创粉丝点击