使用Vi文本编辑器
vi是一个功能强大的全屏幕文本编辑工具,一直以来都作为类UNIX操作系统的默认文本编辑器。vim是vi文本编辑器(简称vi编辑器)的增强版本,在vi编辑器的基础上扩展了很多实用的功能,但是也习惯将vim称为vi。为了方便实用可以设置一个别名,将vi指向vim。
vi编辑器的工作模式
在vi编辑器中可以使用三种不同的工作模式,即
命令模式、输入模式和末行模式
在不同的模式中能够对文件进行的操作也不同。
-
▶命令模式:启动vi编辑器后默认进入命令模式。改模式中主要完成如光标移动,字符串查找,以及删除,复制,粘贴文件内容等相关操作。
-
▶输入模式:该模式中主要的操作就是录入文件内容,可以对文本文件正进行修改或添加新的内容。处于输入模式时,vi编辑器的最后一行会出现“–INSERT–”的状态提示信息。
-
▶末行模式:该模式可以设置vi编辑环境、保存文件、退出编辑器,以及对文件内容进行查找、替换等操作。处于末行模式时,vi编辑器的最后会出现冒号“:”提示符。
三种模式切换:在命令模式→按“:”冒号→进入末行模式
按“a、i、o”可以进入输入模式
在输入模式、末行模式均可按Esc键返回命令模式。
命令模式的基本操作
执行单独的“vi”命令即可进入vi编辑器的命令模式,还会显示相关版本信息。但常见的使用方法是指定要编辑的文件名作为参数,若该文件不存在,则vi根据改文件名称打开一个新的空文件。
-
模式切换:
在命令模式中,按a、i、o等键切换至输入模式,同时确定插入点的位置和方式,以便录入文件内容。需要返回命令模式时,按Esc键即可。
常见的几个切换键:
▶a:在当前光标之后插入内容。
▶A:在光标所在行的末尾(行尾)插入内容。
▶i:在当前光标之前插入内容。
▶I(大写i):在光标所在行的开头(行首)插入内容
▶o:在光标所在行的后面插入一个新行。
▶O:在光标所在行的前面插入一个新行。 -
移动光标
▶光标的方向移动。直接按↑、↓、←、→四个方向键完成相应的光标移动。
▶翻页移动
按Pag Down键或Ctrl + F组合键向下翻动一整页内容。
按 Pag Up 键或 Ctrl + B 组合键向上翻动一整页内容。▶行内快速跳转:
按Home键或^键、数字0键将光标快速的跳转到本行的行首
按End键或$键将光标快速跳转到本行的行尾▶行间快速跳转:
使用按键命令1G或gg可条转到文本内容的第一行
使用按键命令G可跳转到文件最后一行。
使用按键命令#G可跳转到文本的第#行(其中“#”号用具体的数字替换)。
为了便于查看行间的跳转效果,在这里学习如何在vi编辑器里显示行号。
切换到末行模式并执行“:set nu”显示行号,执行“set nonu”取消显示行号。 -
复制、粘贴和删除
▶删除操作
按x键或Delete键删除光标处的单个字符。
使用按键命令dd删除当前光标所在行,使用#dd的形式还可以删除从光标处开始的#行内容(其中“#”号用具体的数字替换)
使用按键命令d^删除当前光标之前到行首的所有字符。
使用按键命令d$删除当前光标处到行尾的所有字符。▶复制操作
使用按键命令yy复制当前行整行的内容到剪贴板。
使用#yy的形式还可以复制从光标开始的#行内容(其中“#”号用具体的数字替换)。复制的内容需要粘贴后才能使用。▶粘贴操作
在vi编辑器中,前一次删除或复制的内容将会保存到剪切板缓存区中,按p键即可将缓存区中的内容粘贴到光标位置处之后,按P键则会粘贴到光标位置处之前。 -
查找文件内容
在命令模式中,按/键可以输入指定的字符串,从当前光标处开始向后进行查找(按?键则向前查找)。完成查找后可以按n、N键在不同的查找结果中进行选择。被查找的字符串高亮显示,光标会自动移至第一个查找结果。 -
撤销编辑及保存和退出
在对文件进行编辑时,有时候需要对一些失误的编辑操作进行撤销,这时可以使用按键命令u、U键。▶u键命令用于取消最近一次的操作并恢复操作结果,可以多次重复按u键恢复多步操作。
▶U键命令用于取消对当前行做的所有编辑。
▶当需要保存当前文件内容vi编辑器时,可以使用按键命令ZZ。
末行模式中的基本操作
在命令模式按 :键可以切换到末行模式,vi编辑器的最后一行会显示“:”提示符,用户可以在该提示符后输入特定的末行命令,如保存文件、退出编辑器、打开新文件、读取其他文件内容及字符串替换等丰富的功能操作。
-
保存文件及退出vi编辑器
▶保存
:w
若要另存为其他文件,则需要制定新的文件名,必要时还需要指定文件路径。例:“:w /root/newfile” –该操作将把打钱编辑的文件另存到/root目录下,文件名为newfile▶退出编辑器
:q▶若文件已经修改,则使用q是无法保存的,这时需要使用强制退出
:q! –不保存强制退出▶若要保存既要退出则可使用
:wq 或 :x –实现 -
打开新文件或读入其他文件内容
▶打开新的文件进行编辑
在当前vi编辑器中,执行“:e 新的文件”形式的末行命令可以编辑新文件。
例:e ~/123.txt –此操作将直接打开当前用户宿主目录中的123.txt进行编辑▶在当前文件中读入其他文件内容。
执行“:r 其它文件”形式的末行命令可以读入(Read)其他文件中的内容,并将其复制到当前光标所在位置。
例:r /etc/123.txt –此操作将把文件/etc/123.txt中的内容复制到当前文件中。 -
替换文件内容
▶%:在整个文件中进行查找并替换
▶n,m:在指定行数范围内的文件内容进行查找并替换
▶末尾的“-g”也是可选内容,不写时只对每一行的第一个匹配结果生效,写上时对替换范围内的每一行的所有匹配结果都生效。
例:对第5行到15行的initdefault替换为DEFAULT
:5,15 sub /initdefault/DEFAULT/g
例:对整个文档范围的initdefault替换为DEFAULT
:% sub /initdefault/DEFAULT/g
在vi编辑器的末行模式中,能够将文件中的特定的字符串替换成新的内容,当需要大批量修改同一内容时,使用替换功能将大大提高效率。
格式如下:
:【替换范围】 sub /旧的内容/新的内容【/g】
在上述替换格式中,主要关键字为sub(Substitute,替换)也可简写为s。替换范围是可选部分,默认对当前行内容进行替换。一般表示为以下两种形式: