【Liunx】什么是vim?五大模式及转换方法详解

news2024/11/20 9:34:22

在这里插入图片描述

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤
📃个人主页 :阿然成长日记 👈点击可跳转
📆 个人专栏: 🔹数据结构与算法🔹C语言进阶🔹C++
🚩 不能则学,不知则问,耻于问人,决无长进
🍭 🍯 🍎 🍏 🍊 🍋 🍒 🍇 🍉 🍓 🍑 🍈 🍌 🍐 🍍

文章目录

  • 一、什么是vim
  • 二、vim的理解
  • 三、vim中的五种模式
  • 四、模式展示
  • 五、📑小结:

一、什么是vim

Vim是从vi 发展出来的一个文本编辑器。它具有代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和【Emacs】并列成为类Unix系统用户最喜欢的文本编辑器。

  • 对于vim来说,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且
    还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于Windows、MacoOS
  • vim是一款 多模式的编辑器,它有着各种各样的模式。例如【命令模式】【插入模式】【底行模式】【可视模式】【替换模式】等等12种模式,在本文中我将会详细介绍这几种模式,介绍每种模式的用法和差别,以及它们之间是如何进行切换的
  • 对于vim这款编辑器来说,它不同于其他编辑器的地方在于你可以仅使用键盘中的主键盘区,基本可以完成绝大多数的操作,当你进入vim后,默认便是命令模式,从此刻开始你主键盘上的所有按键就被赋予了各种功能,如下图👇

在这里插入图片描述

二、vim的理解

上面说过vim是一个编辑器,它的作用便是代码的编写。我们通常使用的vs2019它叫做IDE(Integrated Development Environment),IDE是一个集成开发环境, 包含了从编写代码->调试代码–>编译->链接->运行等一系列操作。

也就是说,vim只是起到一个编写代码的功能。它只是一系列功能中的一种。

在Linux中,我们对集成开发环境的功能进行拆分,也就是说编写代码使用vim调试要使用GDB,编译使用gcc/g++等。

vim负责代码的编辑和维护工作
gdb符合负责代码的调试工作
gcc/g++负责代码的编译运行工作

三、vim中的五种模式

模式转换图:

在这里插入图片描述

各种模式说明: 📢

正常/普通/命令模式【Normal mode】控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。在此模式下无法进行代码编辑
插入模式【Insert mode】只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式
末行模式【Last line mode】文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入
可视模式【Visual mode】在正常模式按下v, V, Ctrl + v,可以进入可视模式。可视模式中的操作有点像拿鼠标进行操作,选择文本的时候有一种鼠标选择的即视感,有时候会很方便
替换模式【Replace mode】在正常模式按下R,可以进入可视模式。对于替换模式而言其实并没有那么常用,因为在命令模式中就可以直接进行替换,也就是按下【r】键,然后直接对当前光标所在字符进行替换即可。但是每次只可替换一次或者批量替换,在【替换模式】中可连续替换,更加方便

四、模式展示

  • 使用指令【vim test1.c】打开我之前创建的test.c文件。

在这里插入图片描述
如上图,刚进入vim时,左下角【NORMAL】:也就是命令模式。

  • 直接按下键盘【a / i / o】,即可进入插入模式。便可以通过键盘输入代码。

在这里插入图片描述

此时左下角【INSERT】:也就是插入模式。

  • 想要切换为视图模式,需要使用【ESC】指令退出插入模式,在按下【V】即可进入视图模式

在这里插入图片描述

  • 进入末行模式,也是相同的道理,先【ESC】在【shift+:】

在这里插入图片描述
末行模式,可以发现在最下面,出行了一个:在这后面我们可以输入保存,退出指令。稍后会讲解。

五、📑小结:

  1. 如果你不知道自己在什么模式下,无脑Esc
  2. 退出的时候,一般都时先保存,再退出wq
  3. vim操作中,不要用鼠标和鼠标的滑轮

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1593909.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SSM的在线学习系统的设计与实现(论文+源码)_kaic

基于SSM的在线学习系统的设计与实现 摘要 随着信息互联网购物的飞速发展,一般企业都去创建属于自己的管理系统。本文介绍了在线学习系统的开发全过程。通过分析企业对于在线学习系统的需求,创建了一个计算机管理在线学习系统的方案。文章介绍了在线学习系…

程序员会营销,好比虎生双翅,不是牛叉,是牛叉大发了。

Hi,我是贝格前端工场,一般来讲程序员在语言表达和营销上都是弱项,你看头条上那些程序员XXX,嘚啵嘚的能说的,其实都是伪程序,都是大商务。 不过,如果程序员如果能够提升自己的营销能力&#xff0…

教你将配置好的conda环境迁移到其它设备

文章目录 问题分析存在的方法环境要求方法步骤1. 下载conda pack2. 打包原环境3. 新设备还原环境4. 查看环境 问题分析 好不容易配置好的conda环境,要在另一个设备上运行,还要重新配置,好麻烦。 存在的方法 pip install -r requirement.txt …

CMD 汉字乱码处理

windows 11 cmd汉字乱码问题处理 一 查看CMD编码 win R 输入 cmd 输入 chcp 查看回显信息 “936”代表的意思就是 GBK (汉字内码扩展规范),通常情况下GBK也是cmd的默认编码。 解决乱码需要把编码改为 utf-8 二 临时修改 在 终端中输入 chcp 65001 三 永久修改…

踩了一堆坑,终于掌握了postgreSQL主从流的精髓

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…

大模型化身数据魔法师,降低NLP高置信误判

关注公众号【AI论文解读】回复: 论文解读 获取本文论文 引言:NLP模型的高置信错误与脆弱性问题 在自然语言处理(NLP)领域,模型的预测性能优化往往伴随着高置信错误(high confidence errors)的产生&#x…

【python】python汽车之家数据抓取分析可视化(代码+报告+数据)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

2D AI交互数字人:赋能文旅、金融、政务、教育行业数字化转型

AI交互数字人结合了语音合成、语音识别、语义理解、图像处理、机器翻译、虚拟形象驱动等多项AI核心技术,可以提供服务导览、业务咨询、语音互动交流、信息播报等智能服务。 其中,2D AI交互数字人是采集真人视频,通过AI训练,生成逼…

C语言——字符函数与字符串函数

正文开始:在编程过程中,我们经常要处理字符和字符串,为了方便操作字符和字符串,C语⾔标准库中提供了 一系列库函数,接下来我们就学习⼀下这些函数。 1. 字符分类函数 C语⾔中有⼀系列的函数是专门做字符分类的&#…

基于ssm的智慧餐厅点餐管理系统设计与实现(java项目+文档+元)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的智慧餐厅点餐管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 智慧餐厅点餐管理系统设计…

在Mac主机上连接Linux虚拟机

前言 最近醉心于研究Linux,于是在PD上安装了一个Debian Linux虚拟机,用来练练手。但是每次在mac和Linux之间切换很是麻烦,有没有一种方法,可以在mac终端直接连接我的虚拟机,这样在mac终端上就可以直接操控我的Linux虚…

资本涌向AI,AI规模将达2205亿美元?

随着科技的飞速发展,全球科技巨头瑞银(UBS)在其最新报告中预测,科技产业正迎来一个前所未有的增长浪潮。特别是在人工智能(AI)领域,预计到2027年,AI模型和应用程序的市场规模将达到惊…

Docker部署WebRTC-Streamer

文章目录 WebRTC-Streamer概述Docker部署WebRTC-StreamerVue使用WebRTC-Streamer一些问题 WebRTC-Streamer概述 WebRTC-Streamer是一个基于WebRTC技术的流媒体传输工具,它可以通过Web浏览器实现实时音视频流的传输和播放。它提供了一种简单而强大的方式&#xff0c…

21.5k Star , AI 智能体项目OpenDevin:少写代码,多创造(附部署教程)

Aitrainee | 公众号:AI进修生 这是一个旨在复制 Devin 的开源项目,Devin 是一位自主人工智能软件工程师,能够执行复杂的工程任务并在软件开发项目上与用户积极协作。该项目致力于通过开源社区的力量复制、增强和创新 Devin。 Devin 代表了一…

汇舟问卷:国外问卷调查适合哪些人?

在这个快节奏的时代,朝九晚五的工作模式似乎已经成为许多人的固定生活模式。然而,这种日复一日的工作方式往往让人感到疲惫和厌倦,我们渴望找到一种既能赚钱又能兼顾生活的方式。 海外问卷调查作为一种适合在家做的赚钱方式,这两…

前端知识学习笔记-六(vue)

简介 Vue是前端优秀框架是一套用于构建用户界面的渐进式框架 Vue优点 Vue是目前前端最火的框架之一 Vue是目前企业技术栈中要求的知识点 vue可以提升开发体验 Vue学习难度较低 Vue开发前准备 一、nodejs环境 Nodejs简介 Nodejs诞生于2009年,主攻服务器方向&#x…

Github Coplit的认证及其在JetBrains中的使用

原文地址:Github Coplit的认证及其在JetBrains中的使用 - Pleasure的博客 下面是正文内容: 前言 今天分享一个可有可无的小技巧,水一篇文。 如标题所述,Github Coplit的认证及其在JetBrains中的使用 正文 介绍JetBrains JetBrain…

BCD BIN 转换

1,BCD是将10进制的每一位转换成2进制 如22 的中数子2的2进制就是0010,那么22的BCD 嘛就是 0010 0010 2,bin 的就是将2进制的每4位转成10进制 如 34的2进制就是0010 0010 高四位和低四位都是 0010 ,0010对应的10进制就是2 那么…

ELFK日志分析系统之搭建ELF+Filebeaat+Zookeeper+Kafka

引言 结合前面所学 http://ELK日志分析系统 一、为什么要做日志分析平台 随着业务量的增长,每天业务服务器将会产生上亿条的日志,单个日志文件达几个GB,这时我们发现用Linux自带工具,cat grep awk 分析越来越力不从心了&#…

(四)qt中使用ffmpeg播放视频,可暂停恢复

一、在qt中添加ffmpeg库及头文件 INCLUDEPATH /usr/local/ffmpeg/include LIBS -L/usr/local/lib -lavutil -lavcodec -lavformat -lswscale 二、详细代码 FFempegVideoDecode 视频解码类(放入线程中) ffmpegvideodecode.h #ifndef FFMPEGVIDEODE…