百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

Linux Vim三种工作模式(命令模式、输入模式和编辑模式)详解

liuian 2025-04-30 18:03 45 浏览

Linux 系统中所有的内容都以文件的形式进行存储,当在命令行下更改文件内容时,常会用到文本编辑器。
我们首选的文本编辑器是 Vim(至于为什么,可查看《Vi和Vim的区别和联系》一节)。使用 Vim 编辑文件时,存在 3 种工作模式,分别是命令模式、输入模式和编辑模式,这 3 种工作模式可随意切换,如图 1 所示。


Vim的命令模式

使用 Vim 编辑文件时,默认处于命令模式。此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。
图 2 所示是在 CentOS 6.x 系统中 Vim 处于命令模式的状态示意图。


Vim的输入模式

在输入模式下,Vim 可以对文件执行写操作,类似于在 Windows 系统的文档中输入内容。
使 Vim 进行输入模式的方式是在命令模式状态下输入 i、I、a、A、o、O 等插入命令(各指令的具体功能如表 3 所示),当编辑文件完成后按 Esc 键即可返回命令模式。


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


Vim 的编辑模式

编辑模式用于对文件中的指定内容执行保存、查找或替换等操作。
使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”键,此时 Vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了。

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

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



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

我是大仁笔记,欢迎一起学习交流。

相关推荐

SpringBoot打包部署解析:jar包的生成和结构

SpringBoot打包部署解析SpringBoot项目支持两种常见的打包形式:jar包和war包。默认情况下创建的SpringBoot项目是采用jar包形式,如果项目需要war包...

Linux 项目部署 java项目(war/jar 包程序)

一、基本指令(1)查看Tomcat的输出日志#实时监听指定tomcat服务的运行日志cd/dat/app-server/sys-tomcat/webapps/#sys.war项目...

理解maven私服和镜像配置这篇就够了

网上一大堆,关于maven配置本地私服和镜像的流程,神乎其乎,初学者总是很难理解其中的真正原理,我通过这篇文章来终结他们;maven安装文件setting.xml的结构<settingsxm...

python脚本查找java类所属jar包(java怎么查找)

java开发或者服务器日志中偶尔会遇到某个类找不到,或者知道大概的class名字,但是不确定输入哪个jar包,想从本地maven仓库或者私服中查找?查找某个类所属jar包#!/usr/bin/pyth...

你还不知道java程序maven打包后如何查看jar的编译版本,过来看看

有时候我们需要知道一个jar是编译是依赖JAVA哪个版本的需求。如:我们知道该程sjjcb-dev-lyq-example-jdk11.jar编译JDK是11,但是具体生产的类是11还是其他...

微软的Edit与Nano比较(edit和editor)

有人问起Edit与Nano有什么差异,这里做个对比,若有遗漏或不对的地方,望指正。微软推出的Edit与经典的Nano编辑器在定位上都是轻量级命令行文本工具,但设计理念、功能侧重和适用场景有一定...

RELU是什么意思(relu是干什么的)

ReLU是一种常用的激活函数,全称为RectifiedLinearUnit,即修正线性单元。它是一种非线性函数,常用于神经网络中的隐藏层,用于增加模型的非线性表达能力。ReLU函数的定义如下:f(...

15年后 Perl 6发布 网友称:终于等到你

转眼,2015已经走到了尽头;千禧年已经走过了15年。今年的圣诞节,Perl6历经了多年的研发,终于正式发布(Perl5的发布时间是1994年)。拉里·沃尔(LarryWall)说:“对于Pe...

Shell脚本编程入门:轻松掌握自动化利器

Shell脚本编程入门:轻松掌握自动化利器一、初识Shell脚本:你的自动化小助手Shell脚本就像一位不知疲倦的助手,能够帮你自动完成那些重复性的系统操作。想象一下,每天上班第一件事要检查服务器状态...

linux 系统中正则表达式的使用(linux正则表达式命令)

正则表达式是通过正则表达式引擎(regularexpressionengine)实现的。在Linux中,有两种流行的正则表达式引擎:POSIX基础正则表达式(basicregularexpre...

linux sed系列 附录:AlmaLinux特性适配说明

本系列所有实验均在AlmaLinux8.9(SapphireCaracal)及GNUsed4.5环境下验证通过。针对这一特定平台,有一些特性和注意事项值得强调,以确保您的实践顺利无阻...

新手必学:grep/awk/sed文本处理神器指南

今天咱们聊个所有技术人都躲不掉的“体力活”——文本处理。是不是经常遇到这些糟心事?服务器日志几千行,想找一条“ERROR”报错信息,手动翻到眼酸;配置文件改了10处,结果漏了一行,重启服务直接崩;想统...

一文搞懂awk、sed、grep和vi的正则表达式

若无特殊说明,说明awk、sed、grep、vi用法相同。sed与grep正则表达式用法相同,有些特殊元字符属于扩展正则(如:+?|(){})sed和grep需要加上\或加上-E选项。建议使用-E选项...

linux sed系列 第四篇:sed工业实战——日志处理与数据清洗

“掌握了sed的编程能力后,我们如同装备精良的工匠,终于可以踏入真实的工业战场。本篇将聚焦sed在日志分析、数据合规化、多文件批处理等场景中的应用,看它如何在海量数据中游刃有余,展现文本处理的...

linux sed系列 第二篇:sed进阶技巧——地址定位与正则表达式

“上一篇我们掌握了sed的基础替换,如同获得了第一把钥匙。现在,让我们更进一步,学习如何精准锁定目标行,如同拥有了导航地图,让每一次操作都直击要害!”地址定位的四种维度sed的强大,很大程度上源...