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的强大,很大程度上源...
- 一周热门
-
-
Python实现人事自动打卡,再也不会被批评
-
【验证码逆向专栏】vaptcha 手势验证码逆向分析
-
Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控
-
一个解决支持HTML/CSS/JS网页转PDF(高质量)的终极解决方案
-
再见Swagger UI 国人开源了一款超好用的 API 文档生成框架,真香
-
网页转成pdf文件的经验分享 网页转成pdf文件的经验分享怎么弄
-
C++ std::vector 简介
-
系统C盘清理:微信PC端文件清理,扩大C盘可用空间步骤
-
10款高性能NAS丨双十一必看,轻松搞定虚拟机、Docker、软路由
-
python使用fitz模块提取pdf中的图片
-
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- table.render (33)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)