linux vim工作模式是什么

发布时间 - 2023-05-16 00:00:00    点击率:

linux vim有3种工作模式:1、命令模式(指令模式),可使用方向键(上、下、左、右键)或k、j、h、i移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。2、在输入模式下,可以向文件写入内容,类似于在Windows系统的文档中输入文本。编辑模式允许对文件中特定内容进行保存、搜索或替换等操作。

vi是什么呢?

vi是Visual Editor的缩写;

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

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

那么vim又是什么呢?

Vi IMproved的缩写;

Vi的升级版;

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

Vim可以用来进行程序编辑,如shell脚本、C语言等,因此它可以被视为一种程序编辑器

那么在我们安装的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 键一次,无论是因为自己的遗忘还是不小心切换模式,都可以返回到命令模式。听到“嘀————”声几次后,说明你已经进入了命令模式。


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


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


相关推荐: 利用 Google AI 进行 YouTube 视频 SEO 描述优化  Laravel如何实现文件上传和存储?(本地与S3配置)  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  简单实现Android验证码  如何彻底卸载建站之星软件?  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  Laravel怎么实现验证码(Captcha)功能  如何用腾讯建站主机快速创建免费网站?  ,在苏州找工作,上哪个网站比较好?  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  如何在云虚拟主机上快速搭建个人网站?  JavaScript实现Fly Bird小游戏  Laravel怎么调用外部API_Laravel Http Client客户端使用  如何正确选择百度移动适配建站域名?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  php打包exe后无法访问网络共享_共享权限设置方法【教程】  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  如何安全更换建站之星模板并保留数据?  linux写shell需要注意的问题(必看)  清除minerd进程的简单方法  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  html5的keygen标签为什么废弃_替代方案说明【解答】  edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】  如何在香港服务器上快速搭建免备案网站?  英语简历制作免费网站推荐,如何将简历翻译成英文?  如何快速搭建自助建站会员专属系统?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  如何快速打造个性化非模板自助建站?  如何构建满足综合性能需求的优质建站方案?  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  Laravel如何实现API版本控制_Laravel版本化API设计方案  JavaScript如何实现错误处理_try...catch如何捕获异常?  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  js实现点击每个li节点,都弹出其文本值及修改  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  如何用免费手机建站系统零基础打造专业网站?  php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】  如何用搬瓦工VPS快速搭建个人网站?  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  python中快速进行多个字符替换的方法小结  javascript基于原型链的继承及call和apply函数用法分析  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  Linux网络带宽限制_tc配置实践解析【教程】  C++时间戳转换成日期时间的步骤和示例代码  图册素材网站设计制作软件,图册的导出方式有几种?