(值得收藏!)vi文本编辑器精讲(代码片段)

author author     2023-01-08     457

关键词:

简介

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文本编辑器,平时多用,多操作才能记住这些命令

linux——文本编辑器(vi)详解介绍(代码片段)

Linux——文本编辑器(Vi)详解介绍1.Vi的简介Vi是Visualinterface的简称,可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户根据自己的需要对其进行制定,这是vi的魅力所在。Vi不是一个编排程... 查看详情

vi/vim编辑器(代码片段)

vi编辑器:全屏的文本编辑器vi:VisualInterface,可视化界面;vim相对于vi有更多的新特性:1.语法着色显示;2.更多的命令;3.历史记录;vi:模式化文本编辑器模式:编辑模式(命令模式),默认工作模式;插入模式(输入模式),文本... 查看详情

04vi/vim文本编辑器(代码片段)

vi/vim都是多模式的文本编辑器,可以进行代码编写。不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于xwindow... 查看详情

vim文本编辑器(代码片段)

vim文本编辑器1什么是vim?早期的Unix都是使用的vi作为系统默认的编辑器。但是目前我们使用比较多的是vim编辑器。你也许会有疑问,vi与vim有什么区别?可以这样简单理解,vim是vi的升级版。Vim是从vi发展出来的一个文本编辑器... 查看详情

vim文本创建编辑(代码片段)

1.编辑(创建)txt文本vimtest.txt2.编辑文本移动光标,在指定位置按下i键,下方出现insert即可开始编辑3.退出编辑编辑完成后按下esc键,底部的insert没有了4.保存退出同时拿下shift和:键,下方会出现:号这个时候可以输入命名wq,回... 查看详情

又一开源神器,值得收藏学习!(代码片段)

...发送支持换行符替换时间戳功能支持较多的中文编码格式值得注意的是支持Linux简单的串口调试支持加载csv表格数据到200条可编辑指令支持部分窗口 查看详情

linux系列使用vi文本编辑器(代码片段)

...页:网络豆的主页​​​​​​目录 前言一.vi文本编辑器1.使用vi文本编辑器2.vi编辑器的工作模式3.命令模式中的基本操作(1)模式切换(2)移动光标(3)复制、粘贴和删除(4)查找文件内... 查看详情

vi与vim(代码片段)

Vi与Vim区别vi:linux自带的文本编辑器,相当于windows中的记事本。vim相当于window下的notepad++、Editplus,可以视作是vi的高级版本,是一种程序编辑器:可以主动地以字体颜色辨别语法的正确性、支持正则表达式的查找方式、多文本... 查看详情

vi和vim编辑器(代码片段)

 VIvi是一种计算机文本编辑器,由美国计算机科学家比尔·乔伊(BillJoy)完成编写,并于1976年以BSD协议授权发布。VIMVim是从vi发展出来的一个文本编辑器。其代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员... 查看详情

vim编辑器的基本使用方法(代码片段)

vi编辑器:全屏的文本编辑器vi:visualinterface,可视化界面;vim:viimprovedvim相对于vi有更多的新特性:1.语法着色显示;2.更多的命令;3.历史记录;vi:模式化文本编辑器模式:编辑模式(命令模式),默认工作模式插入模式(输... 查看详情

vi/vim编辑器必知必会(代码片段)

一、我们为什么要学习vim编辑器?Linux的命令行界面下面有非常多的文本编辑器。比如经常听说的就有Emacs、pico、nano、joe与vim等。vim可以看做是vi的高级版。我们为什么一定要学习vim呢?有以下几个原因:(1)所有的Unix... 查看详情

vi/vim编辑器必知必会(代码片段)

一、我们为什么要学习vim编辑器?Linux的命令行界面下面有非常多的文本编辑器。比如经常听说的就有Emacs、pico、nano、joe与vim等。vim可以看做是vi的高级版。我们为什么一定要学习vim呢?有以下几个原因:(1)所有的Unix... 查看详情

vi编辑器常用命令(代码片段)

vi是linux上的一个文本编辑器一、进入vi编辑器vi文件名例如:vitest.txt二、vi编辑器的三种工作模式1.三种工作模式(1)普通模式由Shell进入vi编辑器时,首先进入普通模式。在普通模式下,从键盘输入任何字符都被当作命令来解释... 查看详情

编辑器之神-vim(代码片段)

 vi简介vi是“Visualinterface”的简称,它在Linux上的地位就仿佛Edit程序在DOS上一样。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制。Vi不是一个排版程序,它不象Word... 查看详情

vi和vim编辑器显示行号(代码片段)

vi:1.临时显示在用vi编辑器编辑文本时输入:setnu取消显示输入:setnonu2.永久显示1)mac系统vi~/.vimrc在最后一行添加setnumber2)centos系统vi/etc/virc在最后一行添加setnu3)ubuntu系统vi/etc/vim/vimrc在最后一行添加setnuvim:1.临时显示在用vim编辑... 查看详情

linuxvi命令(代码片段)

...是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫vim,它是vi的增强版(viImproved),与vi编辑器完全兼容,而且实现了很多增强功能。vi编辑器支持编辑模式和命令模式,... 查看详情

vi和vim(代码片段)

vi——终端中的编辑器01.vi简介在工作中,要对服务器上的文件进行简单的修改,可以使用ssh远程登录到服务器上,并且使用vi进行快速的编辑即可常见需要修改的文件包括:源程序配置文件,例如ssh的配置文件~/.ssh/config在没有... 查看详情

万字详解linux常用指令(值得收藏)(代码片段)

👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇本文将给大家详细介绍Linux常用的指令、演示以及一些基础知识的讲解目录ls指令file指令pwd命令whoami指令cd指令相对路径和绝对路径which指令touch指令mkdi... 查看详情