当前位置:网站首页>vi工作模式(3种)以及模式切换(转换)
vi工作模式(3种)以及模式切换(转换)
2022-07-27 18:05:00 【zhangsan3333】
vi 编辑器是一个功能强大的编辑器。学习 vi 要从其基本工作模式开始学起。了解这些工作模式对用户理解 vi 编辑器的行为是不无裨益的。
对于一些从图形界面中转入 vi 的开发者来说,了解 vi 的工作模式十分重要。本节将深入讨论 vi 编辑器的工作模式。
vi 编辑器有 3 种基本工作模式,分别是命令模式、文本输入模式和末行模式。下面详 细介绍这 3 种模式。
1.命令行模式(默认/command mode)
该模式是进入 vi 编辑器后的默认模式。任何时候,不管用户处于何种模式,按下Esc键即可进入命令模式。
在命令模式下,用户可以输入 vi 命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释。若输入的字符是合法的 vi 命令,则 vi 在接受用户命令之后完成相应的动作。
但需注意的是,所输入的命令并不回显在屏幕上。若输入的字符不是 vi 的合法命令,vi 会响铃报警。
2.文本输入模式(编辑模式/Insert mode)
在命令模式下输入插入命令i、附加命令a、打开命令o、修改命令c、取代命令r或替换命令s都可以进入文本输入模式。
在该模式下,用户输入的任何字符都被 vi 当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按下Esc键即可。
3.末行模式(底行模式/last line mode)
末行模式也称 ex 转义模式。
在命令模式下,用户按:键即可进入末行模式下,此时 vi 会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个:作为末行模式的说明符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。
末行命令执行完后,vi 自动回到命令模式。
vi 工作模式之间的切换
如果要从命令模式转换到编辑模式,可以输入命令a或者i。
如果需要从文本模式返回,则按下Esc键即可。
在命令模式下输入:即可切换到末行模式,然后输入命令。
vi 编辑器的 3 种模式的转换如下图所示。
vi 三种工作模式切换
终端命令行下,使用 " vi 文件名 ",进入vi 编辑器。
vi 编辑器分为三种工作模式:一般指令模式、编辑模式、命令行模式。
(要点:无论处于那种工作模式,按 Esc键 都可进入一般指令模式。编辑模式和命令行模式的切换,必须要经过一般指令模式)
一般指令模式:刚进入vi 时的默认模式。这个模式下能够进行:移动光标、整行的复制粘贴、整行删除 等基本操作。
编辑模式:在一般指令模式下,按 “a” “i” “o” 均可进入编辑模式。此模式下能够进行:文本的输入、删除。
命令行模式(末行模式):在一般指令模式下,按 “:” “/” “?” 均可进入命令行模式。由于此模式的输入会显示在窗口的最后一行,也叫末行模式。此模式下能够进行:搜索、保存、离开 等操作。
vi 常用命令操作
从一般指令模式,进入编辑模式:
i 光标前插入。
a 光标后插入
o 光标下一行插入。
从任何模式退出:先按 Esc键,之后输入:
:q 退出 vi。
:q! 强制退出,不保存文件。
:wq 保存文件并退出。
【vi编辑器的3种模式】
基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:
1) 命令行模式command mode)
控制屏幕光标的移动,字符、字或行的删除,查找,移动复制某区段及进入Insert mode下,或者到 last line mode。
命令行模式下的常用命令:
【1】控制光标移动:↑,↓,j
【2】删除当前行:dd
【3】查找:/字符
【4】进入编辑模式:i o a
【5】进入底行模式::
【6】撤销操作 u
2) 编辑模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
编辑模式下常用命令:
【1】ESC 退出编辑模式到命令行模式;
3) 底行模式(last line mode)
将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
底行模式下常用命令:
【1】退出编辑: :q
【2】强制退出: :q!
【3】保存并退出: :wq

边栏推荐
猜你喜欢

Oracle Xe installation and user operation

Jetpack compose performance optimization guide - compilation metrics

Pyqt5 rapid development and practice 4.3 qlabel and 4.4 text box controls

站在巨人肩膀上学习,京东爆款架构师成长手册首发

一个程序员的水平能差到什么程度?

Understand the wonderful use of dowanward API, and easily grasp kubernetes environment variables

用户组织架构的管理

做测试, 就得去大厂,内部披露BAT大厂招聘“潜规则”
![Leetcode:1498. Number of subsequences that meet the conditions [sort + bisection + power hash table]](/img/a9/de68e8affcb6b84e82cf344e7254e3.png)
Leetcode:1498. Number of subsequences that meet the conditions [sort + bisection + power hash table]

Office automation solution - docuware cloud is a complete solution to migrate applications and processes to the cloud
随机推荐
软件测试面试题:已知一个队列,如: [1, 3, 5, 7], 如何把第一个数字,放到第三个位置,得到:[3, 5, 1, 7]
RK3399平台开发系列讲解(进程篇)15.36、理解进程和协程
JVS私有化部署启动失败处理方案
Anfulai embedded weekly report no. 275: 2022.07.18--2022.07.24
2022-07-19 网工进阶(二十)BGP-路由优选、路由优选逐条分析
[dataset display annotation] VOC file structure + dataset annotation visualization + code implementation
(manual) [sqli labs38, 39] stack injection, error echo, character / number type
Data warehouse construction - DWD floor
EasyCVR平台添加RTSP设备时,出现均以TCP方式连接的现象是什么原因?
MySQL 日志错误日志
浅析即时通讯移动端 IM 开发中登录请求的优化
To share the denoising methods and skills of redshift renderer, you must have a look
Clickhouse 实现 MaterializedPostgreSQL
一个程序员的水平能差到什么程度?
[design tutorial] yolov7 target detection network interpretation
【效率】弃用 Notepad++,这款开源替代品更牛逼!
JVM overview and memory management (to be continued)
Some contents related to cmsis-rtos
Get wechat product details API
What are the apps of regular futures trading platforms in 2022, and are they safe?
