首页 > 系统相关 >Linux学习笔记(第六篇)Vi编辑器

Linux学习笔记(第六篇)Vi编辑器

时间:2022-11-01 21:13:08浏览次数:43  
标签:文件 Vi 命令 Linux 缓冲区 光标 第六篇


​​Linux学习笔记(第零篇)计算机基础​​Linux学习笔记(第零篇)Linux文件系统及Shell
Linux学习笔记(第一篇)零散命令
Linux学习笔记(第二篇)目录操作命令
Linux学习笔记(第三篇)文件操作命令
Linux学习笔记(第四篇)文件内容操作命令+正则表达式+重定向和管道
Linux学习笔记(第五篇)归档及压缩命令
Linux学习笔记(第六篇)Vi编辑器
Linux学习笔记(第七篇)用户和组管理
Linux学习笔记(第八篇)磁盘与文件系统管理
Linux学习笔记(第九篇)逻辑卷管理(LVM)
Linux学习笔记(第十篇)进程管理
Linux学习笔记(第十一篇)服务管理
Linux学习笔记(第十二篇)网络基础
Linux学习笔记(第十三篇)通信管理
Linux学习笔记(第十四篇)管理常用网络服务
Linux学习笔记(第十五篇)常用网络服务器配置

Part6–Vi编辑器


1.编辑器概述:

  • 简单的编辑任务一般都会涉及以下操作:
    (1) 打开文件操作:创建新文件或者打开新文件。
    (2)输入文本、删除文本、搜索文本、修改文本操作。
    (3)关闭操作:保存文本并退出编辑。
  • 文本编辑器的作用:
    (1)创建或修改文本文件。
    (2)维护Linux系统中的各种配置文件。
  • Linux中最常用的文本编辑器:
    (1)Vi:类Linux系统中默认的文本编辑器。
    (2)Vim:Vi编辑器的增强版本,习惯上也称为Vi。

2.Vi编辑器的工作模式:

  • 命令模式:是进入Vi的初始模式,也是Vi的基本工作模式,主要包括移动光标、删除文本、粘贴文本和查找文本等。
  • 文本输入模式:可录入文件内容,该模式下除Esc键以外的所有其它键都作为输入字符添加到被编辑的文本中,文本输入完后必须按Esc键从文本输入模式返回到命令模式后,才能继续完成其它操作。
  • 状态行:为在屏幕底部的一行,命令模式下的有些命令以“:”号、“/”号和“?”号开头,显示在状态行,反馈用户编辑操作的结果,显示错误或其它信息。

3.Vi编辑器的部分原理:

  • Vi编辑器为用户所要创建或修改的文件建立了一个临时的工作区(缓冲区或工作缓冲区)。
  • 如果用户创建新文件时,Vi为新文件打开一个缓冲区。
  • 如果指定的文件已存在,Vi将源文件复制到缓冲区,用户对文件所做的修改只作用于缓冲区中文件的副本而不是源文件。
  • 如果用户希望保存所做的修改,必须用保存的已修改文件(缓冲区中的副本)替换源文件。
  • 对源文件所做的修改不会自动保存,用户必须发出写命令才能保存文件。

4.Vi编辑器的启动与退出:

  • 启动Vi:
    (1)vi [options] file:编辑已有文件。

Linux学习笔记(第六篇)Vi编辑器_linux


Linux学习笔记(第六篇)Vi编辑器_vi编辑器_02


Linux学习笔记(第六篇)Vi编辑器_vi编辑器_03


       (2)vi:创建新的工作缓冲区,可以写入内容。

       (3)vi -R:-R表示以只读方式打开文件,不允许修改,但可以使用w!强制写入。vi的一个特殊版本——view,总是以制度方式打开文件。

       (4)vi -c:-c表示指定的vi命令作为启动的一部分,通常用来在开始编辑之前定位光标。例如,vi -c/hello myfirst表示在打开myfirst文件之后,搜索hello字符串,并将光标定位到搜索位置。

  • 退出Vi:
    【保存文件】
    (1)保存::w
    (2)另存为其它文件::w 路径/新文件名
    (3)未修改退出::q
    (3)放弃对文件内容的修改,并退出Vi::q!
    (4)保存文件退出Vi::wq或ZZ
    (5)注:Vi通常不允许覆盖已存在的文件,若要覆盖,用:w!命令或:wq!命令。
    【例子】
    (1)对于已存在的f1文件的保存与退出:修改内容后,有两种保存退出方案。一种是先按Esc键,再:w(用当前f1的缓冲区副本替换f1),然后:q(将缓冲区内容写入文件f1,并退出Vi编辑器); 另一种是先按Esc键,再:wq(保存和退出同时进行)。

Linux学习笔记(第六篇)Vi编辑器_vi编辑器_04


       (2)对于直接用vi命令打开的缓冲区的保存与退出:修改内容后,有两种保存退出方案。一种是先按Esc键,再:w 新文件名(当前缓冲区的文本内容保存到新文件中),然后:q(将缓冲区内容写入文件f1,并退出Vi编辑器); 另一种是先按Esc键,再:wq 新文件名(保存和退出同时进行)。

Linux学习笔记(第六篇)Vi编辑器_命令模式_05


5.Vi编辑器的相关命令:

  • Vi编辑器刚启动时,处于命令模式,只有在文本输入模式下,方可输入文本。
  • 命令模式切换到文本输入模式的命令键:
    (1)i:在光标左侧输入正文。
    (2)I:在光标所在行开头输入正文。
    (3)a:在光标右侧输入正文。
    (4)A:在光标所在行结尾输入正文。
    (5)o:在光标所在行下一行插入新行。
    (6)O:在光标所在行上一行插入新行。
  • 文本输入模式下的特殊键:
    (1)空格键(Spacebar):输入一个空格。
    (2)制表键(Tab):在光标前插入8个空格(空格数可以配置)。
    (3)退档键(Backspace):删除光标前面一个字符,并且光标回退一个字符。
    (4)回车键(Return):添加新行,如果光标处于行中间,则在光标位置将本行截断。
    (5)↑↓←→ / kjhl:上下左右移动光标。
    (6)w、b:光标向右、向左移动一个字(光标移动到字首、字尾)。
    (7)e:光标移动到字尾。
    (8)Home键 / “^” / 数字0:跳转至行首。
    (9)End键 / “$”:跳转至行尾。
    (10)1G / gg:跳转至文件的首行。
    (11)G:跳转至文件的末尾行。
    (12)行号G / :行号:跳转至文件中指定的行。
    (13)+和-:光标下,上移动一行。
    (14)空格键、退格键:光标右移、左移一格。
    (15)回车键:光标移动到下一行的行首。
  • 命令模式下的文本修改:
    (1)x:删除光标位置指定的字符,连续按x多次,可连续删除多个字符,输入5x可以一次删除5个字符。
    (2)dd:删除光标所在行,连续按dd多次,可连续删除多行,输入3dd可以一次删除3行。
    (3)u:撤销最近的修改。
    (4)U:撤销对当前行的所有修改。
    (5)r:替换光标位置上的一个字符。
    (6)R:替换从光标位置开始的字符,同时进入文本输入模式,按Esc键才能回到命令模式。
    (7).(点):重复上一次修改。
  • 命令模式下的查找:
    (1)/word:从上而下在文件中查找字符串"word"。
    (2)?word:从下而上在文件中查找字符串"word"。
    (3)n:定位下一个匹配的被查找字符串。
    (4)N:定义上一个匹配的被查找字符串。

6.Vi编辑器的在线帮助:

  • 命令模式下输入:help,会显示帮助命令。
  • 输入:q,退出帮助屏幕,返回到文件之中。
  • 为获得指定命令的帮助信息,在:help后面跟着该命令名。
  • 例如::help wq

7.Vi编辑器的复杂应用:

  • 编辑多个文件的部分原理与命令:
    (1)Vi可以一次打开多个文件进行编辑。

(2)每一个文件编辑结束后,不直接退出Vi,而是进行下一个文件的编辑。
(3)可以使用命令:n(next)启动下一个文件的编辑,vi将用下一个文件的内容替换缓冲区的内容,所有如果上一个文件尚未保存,则会提示出错,可以用:n!强制切换文件,但将丢失上一个文件的修改。
(4)使用:ar命令查看Vi打开的文件名列表。
(5)在Vi中打开并编辑另一个文件:e file
(6)读入另一个文件:r file,读入的文件将追加到光标之后,称为正在编辑的当前文件的一部分。
(7)写入另一个文件:[n-start, n-end] w file,如果不指定行,则写入整个文件。如果文件已存在,则提示出错,但可以使用w!强制写入。例子:5,100 w temp将当前编辑的文件的第5行到100行写入到temp文件中。

  • 命令模式下的重排文本:
    (1)d:删除指定位置的文本,并保存到临时缓冲区。
    (2)dd:删除一行内容,光标下移一行。
    (3)y:复制指定位置的文本到临时缓冲区。
    (4)yy:将当前行复制到临时缓冲区。
    (5)P:将临时缓冲区的文本插入到光标位置之上。
    (6)p:将临时缓冲区的文本插入到光标位置之下。
  • 命令模式下Vi操作符的域:
    (1)$:光标从当前位置移动到行尾。
    (2)0:光标从当前位置移动到行首。
    (3)e / w:光标从当前位置移动到字尾。
    (4)b:光标从当前位置移动到字首。
    【例子】
    (1) d$:从光标位置开始,删除到行尾。
    (2)d0: 从光标位置开始,删除到行首。
    (3)3dw:从光标位置开始,删除3个字。
    (4)y $:(注:同(1))从光标位置开始,复制至行尾放到临时缓冲区中。

8.Vi编辑器的缓冲区:

Vi编辑器有多个用作临时存储的缓冲区。

  • Vi缓冲区的类型:
    【工作缓冲区】
    (1)保存用户文件副本。
    (2)当Vi打开一个文件进行编辑时,文件内容被载入到工作缓冲区。
    (3)执行Vi写入命令之前,所有的修改只是对工作缓冲区的副本进行修改,执行了写入命令后,缓冲区内容真正写入文件,修改才永久有效。
    (4)Vi打开多个文件进行编辑时,工作缓冲区存储当前编辑的文件内容,主要修改丢失问题。
    【数字编号缓冲区】
    (1)编号为1到9的9个临时缓冲区。
    (2)每次删除或复制的文本存放在这些缓冲区中。
    (3)缓冲区1总时保存最新内容,其它缓冲区按数字排列一次存储从新到旧的内容(类似队列FIFO思想)。
    (4)访问指定的缓冲区:双引号+缓冲区编号+p,例如:" 6p表示将第6个缓冲区的内容粘贴到光标位置。
    【字母编号缓冲区】
    (1)26个以英文字母编号的缓冲区。
    (2)系统不自动将删除或复制的内容存储到字母缓冲区。用户需要指定将内容存储到哪个缓冲区:双引号+缓冲区名+命令。例如:" wdd表示将当前行删除并复制到w缓冲区。" e7yy表示复制当前光标开始的7行内容到e缓冲区。

9.其他Vi命令:

  • 运行Shell命令:用户可以在Vi的命令行中运行Shell命令。使用时:!开头,例如::!date表示显示当前时间,:!pwd表示显示当前目录,:r!date表示当前日期和时间会被写入当前行下。
  • J命令:连接两行,将当前行的下一行连接到当前光标所在行之后。
  • Vi的-r选项:当编辑文件时,Vi或者UNIX崩溃,-r选项可以恢复原来的文件。例如:vi -r mypro.cpp恢复上次崩溃前的mypro.cpp文件。

10.定制Vi编辑器:

  • 参数默认值:
    (1)Vi编辑器有许多参数(选项或者标识)可供用户设置,从而控制工作环境,这些参数有默认值,但可以调整。
    (2)在命令模式,输入:set all即可查看完整的参数列表以及它们在系统上的当前设置。
    (3)参数分为三种类型:布尔、数字式、串。
    (4) 布尔:set X或set noX(例如:set nu或:set nonu表示显示行号或不显示行号)。
    (5):set ignorecase:搜索时忽略大小写。
    (6) :set noignorecase:大小写敏感。
    (7)数字式或串:set X=值(等号两边没有空格)。
    (8)set X?可以显示参数X的值。
  • 缩写操作符:
    (1):ab命令用来定义缩写,取消缩写用:unab命令。例如::ab sqp suiyongping、:unab syp
    (2):map命令用来定义缩写(宏操作符),用map可以指定单个键代表键序列。例如::map q 5x、:unmap q,:map #2 3x(给3x指定F2键)、:unmap #2


标签:文件,Vi,命令,Linux,缓冲区,光标,第六篇
From: https://blog.51cto.com/u_15856491/5814973

相关文章

  • Linux学习笔记(第零篇)计算机基础
    ​​Linux学习笔记(第零篇)计算机基础​​Linux学习笔记(第零篇)Linux文件系统及ShellLinux学习笔记(第一篇)零散命令Linux学习笔记(第二篇)目录操作命令Linux学习笔记(第三篇)文件操......
  • Linux学习笔记(第零篇)Linux文件系统及Shell
    ​​Linux学习笔记(第零篇)计算机基础​​Linux学习笔记(第零篇)Linux文件系统及ShellLinux学习笔记(第一篇)零散命令Linux学习笔记(第二篇)目录操作命令Linux学习笔记(第三篇)文件操......
  • Linux学习笔记(第一篇)零散命令
    ​​Linux学习笔记(第零篇)计算机基础​​Linux学习笔记(第零篇)Linux文件系统及ShellLinux学习笔记(第一篇)零散命令Linux学习笔记(第二篇)目录操作命令Linux学习笔记(第三篇)文件操......
  • Linux学习笔记(第二篇)目录操作命令
    ​​Linux学习笔记(第零篇)计算机基础​​Linux学习笔记(第零篇)Linux文件系统及ShellLinux学习笔记(第一篇)零散命令Linux学习笔记(第二篇)目录操作命令Linux学习笔记(第三篇)文件操......
  • Linux学习笔记(第四篇)文件内容操作命令+正则表达式+重定向和管道
    ​​Linux学习笔记(第零篇)计算机基础​​Linux学习笔记(第零篇)Linux文件系统及ShellLinux学习笔记(第一篇)零散命令Linux学习笔记(第二篇)目录操作命令Linux学习笔记(第三篇)文件操......
  • 【Azure 应用服务】部署WAR包到App Service访问出现404错误的解决方式
    问题描述在Linux的AppService上,通过FTP把war文件和HTML静态文件上传到wwwroot目录下,静态文件访问成功,但是java应用中的请求都返回404错误 问题解决因为FTP上传文件只......
  • Linux学习笔记(第三篇)文件操作命令
    ​​Linux学习笔记(第零篇)计算机基础​​Linux学习笔记(第零篇)Linux文件系统及ShellLinux学习笔记(第一篇)零散命令Linux学习笔记(第二篇)目录操作命令Linux学习笔记(第三篇)文件操......
  • Unix/Linux系统编程(块设备I/O和缓冲区管理)
    块设备I/O缓冲区I/O缓冲的基本原理非常简单,文件系统使用一系列I/O缓冲区作为块设备的缓存内存。当进程试图读取(dev,blk)标识的磁盘块时,它首先在缓冲区缓存中搜索分配给......
  • Linux系统安装jenkins
    搭建Jenkins,准备搞一个定时任务来自动部署服务。做个记录。jdk版本:jdk-11.0.17Jenkins版本:2.3751.应用下载jdk下载:https://www.oracle.com/java/technologies/do......
  • Linux fixfiles 命令
    Linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与......