Linux基础----------VI编辑器
一.什么是vi编辑器
1.vi编辑器通常被简称为vi,而vi又是visual editor的简称 。它在Linux上的地位就像Edit程序在DOS上一样。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。
2.vi 编辑器并不是一个排版程序,它不像Word或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。没有菜单,只有命令,且命令繁多。vi有3种基本工作模式:命令行模式、文本输入模式和末行模式。
3.Vim是vi的加强版,比vi更容易使用。vi的命令几乎全部都可以在vim上使用。
二.vi编辑器的工作模式
vi编辑器界面可以使用三种不同的工作模式。包括命令模式、输入模式和末行模式。
命令模式:启动vi编辑器后默认进入命令模式。该模式中主要如光标的移动、字符串查找、以及删除、复制、粘贴文件等文件相关操作。
输入模式:该模式中主要的操作就是录入文件内容,可以对文件进行修改或者添加新的内容。且处于输入模式的时候,vi编辑器的最后一行会出现“–INSERT–”的状态提示信息。
末行模式:该模式中可以vi编辑环境、保存文件、退出编辑器,以及对文件内容进行查找、替换等操作。处于末行模式,vi编辑器的最后一行会出现冒号“:”的提示符。
三.命令模式下的基本操作
切换模式:
a:在光标之后插入内容
i:在国标之前插入内容
o:在光标所在行的后面插入新行
O:在光标所在行的前面插入新行
光标的移动
方向移动----------------↑、↓、←、→ ----------上、下、左、右
翻页
page down或ctrl+F-----向下翻动一整页内容
page up或ctrl+B--------向上翻动一整页内容
行内快速跳转
home或^、数字0-----------跳转至行首
end或$键--------------------- 跳转至行尾
行间快速跳转
gg或1G-----------------跳转文件的行首
G-------------------------跳转文件的末尾
#+G---------------------跳转至文件的第#行
行号显示
:set nu--------------------------在编辑器中显示行号
:set nu!或:set nonu--------在编辑器中取消行号显示
复制、粘贴、删除等操作
删除
x-------删除光标处的单个字符
dd-----删除光标所在行的内容
#dd—删除光标所在行开始到#行的内容
d^-----删除当前光标之前到行首的内容
d$-----删除当前光标之后到行尾的内容
dw----删除单个单词
复制
yy------复制当前行整行的内容到剪贴板
#yy----复制从光标所在行开始到#行的内容
粘贴
p(小写)—粘贴到光标之前
P(大写)—粘贴到光标之后
撤销
u(小写)—撤销当前操作
U(大写)—取消对当前行的所有编辑
保存并退出
ZZ(大写) 保存当前的文件内容并且退出
查找文件内容
/word-----从上而下在文件中查找字符串“word”
?worf------从下而上在文件中查找字符串“word”
n------------定位下一个匹配的被查字符串
N------------定位上一个匹配的被查字符串
四.末行模式下的基本操作
保存文件及退出vi编辑器
保存文件:
:w------------------------保存修改的内容
:w /root/newfile----另存为其他文件
退出vi:
:q-------未修改退出
:q!------放弃对文件内容的修改,并退出vi
保存文件退出vi:
:wq----保存修改的内容并退出
打开新文件或读入其他文件内容
:e ~/install.log----------打开新的文件进行编辑
:r /etc/filesystems-----在当前文件中读入其他文件内容
文件内容替换
:s /old/new---------------将当前行中查找到的第一个字符“old”串替换为“new”
:s /old/new/g-----------将当前行中查找到的所有字符串“old”替换“new”
:#,# s/old/new/g----在行号“#,#”范围内替换所有字符串“old”为“new”
:% s/old/new/g --------在整个文件范围内替换所有的字符串“old”为“new”
所有字符串“old”替换“new”
:#,# s/old/new/g----在行号“#,#”范围内替换所有字符串“old”为“new”
:% s/old/new/g --------在整个文件范围内替换所有的字符串“old”为“new”
:s /old/new/c-------------在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认