linux vim有几种工作模式

发布时间 - 2023-02-02 00:00:00    点击率:
linux vim有3种工作模式:1、命令模式(指令模式),可使用方向键(上、下、左、右键)或k、j、h、i移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。2、输入模式,可以对文件执行写操作,类似于在Windows系统的文档中输入内容。3、编辑模式,用于对文件中的指定内容执行保存、查找或替换等操作。

本教程操作环境:linux7.3系统、Dell G3电脑。

vi是什么呢?

vi是Visual Editor的缩写;

是一种命令行界面下的文本编辑器;

在早期的Unix操作系统中,都是使用vi作为系统默认的编辑器的

那么vim又是什么呢?

Vi IMproved的缩写;

Vi的升级版;

Vim和Vi的最大区别就在于,当我们在编辑一个文本的时候,vi不会显示颜色,而vim会显示颜色

此外vim还能够进行诸如shell脚本,C语言等程序编辑功能;因此,你可以将vim视为一种程序编辑器

那么在我们安装的CentOS系统里,已经带有vim命令,所以不需要安装;如果Linux系统里没有vim这个命令,那么需要在联网后使用命令yum install -y vim-enhanced自行进行安装。

vim的三种工作模式

使用 Vim 编辑文件时,存在 3 种工作模式,分别是命令模式、输入模式和编辑模式,这 3 种工作模式可随意切换,如图 1 所示。


图 1 Vim 的三种工作模式

Vim的命令模式

使用 Vim 编辑文件时,默认处于命令模式。此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。

图 2 所示是在 CentOS 6.x 系统中 Vim 处于命令模式的状态示意图。


图 2 Vim 处于命令状态

Vim的输入模式

在输入模式下,Vim 可以对文件执行写操作,类似于在 Windows 系统的文档中输入内容。

使 Vim 进行输入模式的方式是在命令模式状态下输入 i、I、a、A、o、O 等插入命令(各指令的具体功能如表 3 所示),当编辑文件完成后按 Esc 键即可返回命令模式。

表 3 各插入命令的具体功能
快捷键 功能描述
i 在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动
I 在光标所在行的行首插入随后输入的文本,行首是该行的第一个非空白字符,相当于光标移动到行首执行 i 命令
o 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本
O 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本
a 在当前光标所在位置之后插入随后输入的文本
A 在光标所在行的行尾插入随后输入的文本,相当于光标移动到行尾再执行a命令
 

图 3 所示即为 Vim 处于输入模式状态下的示意图。


图 3 Vim 处于输入模式

Vim 的编辑模式

编辑模式用于对文件中的指定内容执行保存、查找或替换等操作。

使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”键,此时 Vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了。

指令执行后 Vim 会自动返回命令模式。如想直接返回命令模式,按 Esc 即可。

图 4 所示为 Vim 进入编辑模式后的状态。


图 4 Vim 进行编辑模式

对于新手来说,经常不知道自己处于什么模式。不论是自己忘了,还是不小心切换了模式,都可以按一次 Esc 键返回命令模式。如果你多按几次 Esc 键后听到"嘀————"的声音,则代表你已经处于命令模式了。

相关推荐:《Linux视频教程》


# linux  # 所示  # 是在  # 以对  # 编辑器  # 右键  # 三种  # 什么呢  # 还可  # 停在  # 类似于 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 微信小程序 配置文件详细介绍  Laravel中的withCount方法怎么高效统计关联模型数量  如何将凡科建站内容保存为本地文件?  EditPlus 正则表达式 实战(3)  Linux系统命令中tree命令详解  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  成都网站制作公司哪家好,四川省职工服务网是做什么用?  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  如何在香港免费服务器上快速搭建网站?  如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)  如何自定义建站之星网站的导航菜单样式?  Laravel如何创建自定义Artisan命令?(代码示例)  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  如何在七牛云存储上搭建网站并设置自定义域名?  JavaScript如何实现继承_有哪些常用方法  如何正确下载安装西数主机建站助手?  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  网站制作壁纸教程视频,电脑壁纸网站?  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  Laravel集合Collection怎么用_Laravel集合常用函数详解  南京网站制作费用,南京远驱官方网站?  JavaScript数据类型有哪些_如何准确判断一个变量的类型  详解MySQL数据库的安装与密码配置  Laravel怎么使用artisan命令缓存配置和视图  如何在Windows虚拟主机上快速搭建网站?  如何在自有机房高效搭建专业网站?  如何在 Pandas 中基于一列条件计算另一列的分组均值  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  怎么用AI帮你设计一套个性化的手机App图标?  黑客如何通过漏洞一步步攻陷网站服务器?  Laravel如何实现API版本控制_Laravel版本化API设计方案  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  Android利用动画实现背景逐渐变暗  Laravel怎么判断请求类型_Laravel Request isMethod用法  Laravel怎么在Blade中安全地输出原始HTML内容  如何基于云服务器快速搭建个人网站?  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  如何挑选优质建站一级代理提升网站排名?  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  如何在服务器上配置二级域名建站?  javascript如何操作浏览器历史记录_怎样实现无刷新导航  高性能网站服务器配置指南:安全稳定与高效建站核心方案  Laravel中的Facade(门面)到底是什么原理  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  Laravel如何创建自定义中间件?(Middleware代码示例)  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  如何在景安云服务器上绑定域名并配置虚拟主机?  大学网站设计制作软件有哪些,如何将网站制作成自己app?