(值得收藏!)Vi 文本编辑器精讲

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(值得收藏!)Vi 文本编辑器精讲相关的知识,希望对你有一定的参考价值。

简介

vi 编辑器通常被简称为vi, vi 编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,由于不需要图形界面,vi是效率很高的文本编辑器。尽管在Linux上也有很多图形界面的编辑器可用,但vi在系统和服务器管理中的功能是那些图形编辑器所无法比拟的。

作用

创建或修改文本文件
维护 Linux系统中的各种配置文件

vi与vim关系

Vi:类Unix系统中默认的文本编辑器
vim:ⅵ 编辑器的增强版本,习惯上也称为vi

一、ⅵ编辑器的工作模式

在ⅵ编辑界面中可以使用三种不同的工作模式,分别为命令模式、输入模式和末行模式,在不同的模式中能够对文件进行的操作也不相同。

● 命令模式:启动ⅵ编辑器后默认进入命令模式。在该模式中主要完成如光标移动、字符串 查找,以及删除、复制、粘贴文件内容等相关操作
● 输入模式:该模式中主要的操作就是录入文件内容,可以对文本文件正文进行修改或者添 加新的内容。处于输入模式时,ⅵ编辑器的最后一行会出现“- INSERT-”的状态提示息。
● 末行模式:该模式中可以设置ⅵ编辑环境、保存文件、退岀编辑器,以及对文件内容进行 查找、替换等操作。处于末行模式时,ⅵ编辑器的最后一行会出现冒号“:”提示符。

命令模式、输入模式和末行模式是ⅵ编辑环境的三种状态,通过不同的按键操作可以在不同的模式间进行切换。例如,从命令模式按冒号“”键可以进入末行模式,而如果按a、ⅰ、o等键可以进入输入模式,在输入模式、末行模式均可按Esc键返回至命令模式。

vi工作模式图:

技术分享图片

二、命令模式中的基本操作

温馨提示:
在学习ⅵ编辑器的基本操作时,建议复制一个内容较多的系统配置文件进行练习,而不要直接去修改系统文件,以免发生失误造成系统故障。例如,以下操作把系统配置文件/ etc/inittab复制为当前目录下的 vitest.file文件,然后用ⅵ编辑器打开vitest.file文件进行编辑。

[root(@host~ ]# cp /etc/inittab /vitestfile #做备份
[[email protected]~ ] # vi vitest file

注意事项:

在ⅵ编辑器的命令模式中,可以输入特定的按键(称之为ⅵ操作命令,注意区别于Linuⅸ系统命令)进行操作。主要包括模式切换、光标移动、复制、删除、粘贴、文件内容查找及保存和退出等操作,这里只介绍最基本、最常用的按键命令。

1.模式切换

在命令模式中,使用a、i、o等按键可以快速切换至输入模式,同时确定插入点的方式和位置,以便录入文件内容。需要返回命令模式时,按Esc键即可。
常见的几个模式切换键及其作用如下:

● a:在当前光标位置之后插入内容。
● A:在光标所在行的末尾(行尾)插入内容。
● i:在当前光标位置之前插入内容。
● l:在光标所在行的开头(行首)插入内容。
● o:在光标所在行的后面插入一个新行。
● O:在光标所在行的前面插入一个新行。

2.移动光标

光标方向的移动: 直接使用键盘中的四个方向键↑、↓、←、→完成相应的光标移动

(1) 翻页移动

● 使用 PageDown键或CmH+F组合键向下翻动一整页内容
● 使用 PageUp键或CtH+B组合键向上翻动一整页内容。
● 其中 PageDown键和Pge鍵同样适用于ⅵi的输入模式

(2)行内快速跳转

● 按Home键或^键、数字0键将光标快速跳转到本行的行首。
● 按End键或$键将光标快速跳转到本行的行尾。
● 在上述按键操作中, PageDown、 PageUp、Home、End键及方向键同样也可在ⅵ的输 入 模式中使用

(3)行间快速跳转

● 使用按键命令1G或者g可跳转到文件内容的第1行。
● 使用按键命令G可跳转到文件的最后一行。
● 使用按键命令#G可跳转到文件中的第#行(其中“#”号用具体数字替换)。

为了便于查看行间跳转效果,这里可以先学习一下如何在ⅵ编辑器中显示行号。只要切换到末行模式并执行“setm”命令即可显示行号,执行“ set nonu”命令可以取消显示行号。

:set nu

显示行号后的ⅵ编辑器界面显示格式如下所示(每行开头的数字即行号)

1 inittab is no longer used when using systemd
2 #
3 # ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM
……//省略部分内容

快捷查询图:

技术分享图片

3.复制、粘贴和删除

(1)删除操作

● 使用x键或Del按键删除光标处的单个字符。
● 使用按键命令dd删除当前光标所在行,使用#d的形式还可以删除从光标处开始的#行内容 (其 中“#”号用具体数字替换)
● 使用按键命令d^删除当前光标之前到行首的所有字符。
● 使用按键命令心d$s删除当前光标处到行尾的所有字符。

(2)复制操作

● 使用按键命令y复制当前行整行的内容到剪贴板,使用#yy的形式还可以复制从光标处开始的 #行内容(其中“#”号用具体数字替换)。复制的内容需要粘贴后才能使用。在ⅵ编辑器中,前一次被删除或复制的内容将会保存到剪切板缓冲器中,按p键

(3)粘贴操作

即可将缓冲区中的内容粘贴到光标位置处之后,按P键则会粘贴到光标位置处之前在命令模式中,按/键后可以输入指定的字符串,从当前光标处开始向后进行查找

快捷查询图:

技术分享图片

4.查找文件内容

(如果按“?”键则向前查找)。完成查找后可以按n、N键在不同的查找结果中进行选择。例如,输入“/ initdefault”,按 Enter键后将查找出文件中的“ f initdefault”字符串并高亮显示,光标自动移动至第一个查找结果处,按n键可以移动到下一个查找结果。

快捷查询图:

技术分享图片

5.撤销编辑及保存和退出

在对文件内容进行编辑时,有时候会需要对一些失误的编辑操作进行撤销,这时可以使用按键命令u、U键。其中,u键命令用于取消最近一次的操作,并恢复操作结果,可以多次重复按u键恢复已进行的多步操作:U键命令用于取消对当前行所做的所有编辑。
当需要保存当前的文件内容并退出ⅵ编辑器时,可以按ZZ命令。

快捷查询图:

技术分享图片

三、末行模式中的基本操作

在命令模式中按冒号“:”键可以切换到末行模式,ⅵ编辑器的最后一行中将显示“:”提示符,用户可以在该提示符后输入特定的末行命令,完成如保存文件、退出编辑器、打开新文件、读取其他文件内容及字符串替换等丰富的功能操作。

1.保存文件及退出ⅵ编辑器

● 保存文件。对文件内容进行修改并确认以后,需要执行“:w”命令进行保存

:w

若需要另存为其他文件,则需要指定新的文件名,必要时还可以指定文件路径。
例如,执行“ w/root/newfile”操作将把当前编辑的文件另存到/roo目录下,文件名为 newfile

:w/root/newfile

退出编辑器。需要退出ⅵ编辑器时,可以执行“q”命令。若文件内容已经
修改却没有保存,仅使用“:q”命令将无法成功退出,这时需要使用!”
命令强行退出(不保存即退出)

:q!

● 保存并退出。既要保存文件又要退出ⅵ编辑器可以使用一条末行命令“两”
或“:x”实现,其效果与命令模式中的ZZ命令相同

:wq

或者

:x

快捷查询图:

技术分享图片

2.打开新文件或读入其他文件内容

● 打开新的文件进行编辑。在当前ⅵ编辑器中,执行“:e新的文件”形式的末行命令可以编辑(Edit)新文件。例如,执行“:e~ /installlog”操作将直接打开当前用户宿主目录中的 install log文件进行编辑

:e~ /install.log

● 在当前文件中读入其他文件内容。执行“x其他文件”形式的末行命令可以读入(Read)其他文件中的内容,并将其复制到当前光标所在位置。例如,执行“r/ etc/filesystems”操作将把系统文件/ etc/filesystems中的内容复制到当前文件中

:r /etc/filesystems

快捷查询图:

技术分享图片

3.替换文件内容

在ⅵ编辑器的末行模式中,能够将文件中特定的字符串替换成新的内容,当需要大批量修改同一内容时,使用替换功能将大大提高编辑效率。使用替换功能时的末行命令格式如下所示:

:[替换范围]sub/旧的内容/新的内容[/g]

在上述替换格式中,主要关键字为sub( Substitute,替换),也可以简写为s。替换范围是可选部分,默认时只对当前行内的内容进行替换,一般可以表示为以下两种形式。

● %:在整个文件内容中进行查找并替换。
● n,m:在指定行数范围以内的文件内容中进行查找并替换。
● 最末尾的“g”部分也是可选内容,表示对替换范围内每一行的所有匹配结果都进行替换,省 略“g”时将只替换每行中的第一个匹配结果。

例如,若要将文档中第5~15行的“initdefault”字符串替换为“ DEFAULT”,可以执行以下操作:

:5,15 sub /initdefault/DEFAULT/g

当需要对整个文档范围进行査找替换操作时,需要使用“%”符号表示全部。例如,以下操作将把当前文件中所有的“ initdefault‘”字符串替换为“ bootdefault”。

:% sub /initdefault/bootdefault/g

如果要对每个替换动作提示用户进行确认,可以在替换命令末尾加入“c”命令,如下所示:

:%o sub /initdefault/bootdefault/c

快捷查询图:

技术分享图片

总结

● ⅵ、vim是一个全屏幕的文件编辑器, 包括命令模式、输入模式、末行模式、三种使用状 态
● !vim 命令可以直接返回上一次编辑处
● 使用dd+p键可以实现剪切、粘贴功能
● 使用dw可删除整个单词
● 编辑系统配置文件时,记得先备份!
● 建议使用vim编辑器,里面有颜色区分,一般编辑错误会显示红色
● 要想熟练使用vi文本编辑器,平时多用,多操作才能记住这些命令

以上是关于(值得收藏!)Vi 文本编辑器精讲的主要内容,如果未能解决你的问题,请参考以下文章

JS常用代码片段2-值得收藏

JS常用代码片段-127个常用罗列-值得收藏

Linux目录和文件高级操作精讲

前端学习口诀VI:html+css口诀结尾篇,值得收藏!

开挂了!这5个Word技巧真的是超级实用,值得收藏!

最值得Java开发者收藏的网站