Linux编辑器vim的基本操作(详解及GIF演示)

💫Linux开发工具vim

  在我们初学某门语言时可能接触过使用记事本编辑代码,在之后我们开始接触visual studio等集成开发环境,对于这种基于图形化界面的编辑工具我们可以说已经十分熟悉了,那么接下来我们就来介绍一下Linux中的编辑器vim,以及如何使用vim。

  ⭐️vim的模式

  vim是一款多模式编辑工具,本文主要讲解,普通模式,插入模式,底行模式

  正常/普通/命令模式(Normal mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及切换其他模式。
  插入模式(Insert mode)
做文字输入。
  底行模式(last line mode)
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。

  以上是vim最常用的几种模式,vim模式详情可在底行模式输入:help vim-modes(注:当我们切换至底行模式时自动就输入了一个:)
(注:退出查看,底行模式输入:q)

💫vim基本操作

  进入vim时,默认是命令模式,

  ⭐️vim插入模式基本操作

  插入模式操作我们早就已经接触过了,可以说十分熟悉,我们怎么在记事本编写代码,插入模式就怎么操作。重点是怎么从命令模式和插入模式中自由切换。
  从命令模式切换至插入模式,可从命令模式输入a,i,o;
  其他的所有模式切换至命令模式,按ESC键

  注:模式之间的切换,只能从命令模式和其他模式之间进行切换,例如我想要从插入模式切换至底行模式,就只能从插入模式切换至命令模式然后再切换至底行模式。

✨命令模式输入i:从光标当前位置输入内容
✨ 命令模式输入a:从光标的下一个位置输入内容
✨ 命令模式输入o:从新的一行输入内容

请看gif动画,我会依次输入i,a,o
注:左下角有模式种类提示
在这里插入图片描述

  ⭐️vim命令模式基本操作

(注:不输入数字n,默认是1)

    🌟光标移动操作

[$] :移动光标至所在行最右侧结尾处。
[^] :移动光标至所在行最左侧开头处。
[G]:移动光标至文本最结尾。
[n+G] (注:n表示一个十进制数字):移动光标至指定行。
[gg]:移动光标至文本最开始。
[h]:光标左移,相当于方向键左
[j]:光标下移,相当于方向键下
[k]:光标上移,相当于方向键上
[l]:光标右移,相当于方向键右
[w]:按照“单词”后移
[b]:按照“单词”前移(注:单词并不是完全指英语单词,vim有它的界定条件,这个条件需自己感受)

    🌟复制,剪切,删除与粘贴操作

[n+yy]:复制当前n行
[n+dd]:删处/剪切当前n行,
[n+pp];粘贴n次内容至当前行
[n+x]:删除光标所在n个字符
[n+X]:删除光标前n个字符

我会剪切main函数整体,并且粘贴1次,然后我会复制main函数整体,并且进行2次粘贴。再最后对“main()”进行删除,先5+X,再x.
在这里插入图片描述

    🌟撤销与撤销撤销操作

[u]:撤销操作
[ctrl键+r]:撤销之前做的撤销操作

我会先删除main函数整体,然后再撤销删除操作,然后再撤销对撤销删除操作的撤销(真拗口呀,操作方面还是自己操作自己感受贴切)

在这里插入图片描述

    🌟替换操作

[~]:大小转换
[n+r]:替换n个字符
[R]:进入替换模式(replace mode):是vim编辑器的一种模式,和插入模式类似,可任意进行字符替换。

仔细感受GIF(左下角有模式切换提醒)
在这里插入图片描述

    🌟查找操作

[#]:高亮要查找的函数名/字符串名
[n]:下一个函数名/字符串名

(注:取消高亮在底行输入:noh),光标所在字符串或函数名就是我们要查找的
我在这里高亮main()函数然后再取消高亮

在这里插入图片描述

  ⭐️vim底行模式基本操作

    🌟关于(强制)保存,(强制)退出,与(强制)保存退出

保存:[:w]
(强制)保存:[:w!]
退出:[:q]
(强制)退出:[:q!]
保存退出:[:wq]
(强制)保存退出[:wq!]
[ZZ]保存并退出vim
(注:不正常退出,系统会给我们默认保存一个.swp文件,对于这个文件我们恢复后再删除)

    🌟不退出vim,使用命令行

命令为:[:! 操作]
例如我们在底行输入:!ls
退出按q
在这里插入图片描述

    🌟vim打开多个文件并且在文件之间进行切换

命令为:[:vs 文件名]
命令模式输入[WW]进行切换
(注:切换过程中注意光标闪动)
在这里插入图片描述💖💖本章到此结束,感谢阅读,你的支持就是我创作的动力,感谢支持。💖💖
🌈如果你只做你能做的事,你永远不会比现在更好。🌈

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【linux学习】linux概述

操作系统主要的功能有两个部分,一是更有效率的控制计算机硬件资源(主要通过核心来控制),二是为程序设计师提供更容易开发软件的环境(系统呼叫提供软件开发环境)。linux就是一套操作系统,linux就…

【数据结构】二叉树(二)——顺序结构

前言 本篇博客讲解数组实现二叉树的顺序结构 文章目录 一、二叉树的顺序结构及实现1.1 二叉树的顺序结构1.2 堆的概念1.3 堆的实现1.3.1 初始化堆1.3.2 向堆中插入元素1.3.3 从堆顶删除1.3.4 其他操作1.3.5 完整代码Heap.hHeap.c 1.4 堆的应用1.4.1 堆排序1.4.2 TOP-K问题 一、…

Ubuntu18.04 升级Ubuntu20.04

文章目录 背景升级方法遇到的问题 背景 因项目环境需要,欲将Ubuntu18.04升级至Ubuntu20.04,参考网上其他小伙伴的方法,也遇到了一个问题,特此记录一下,希望能帮助其他有同样问题的小伙伴。 升级方法 参考&#xff1a…

【React系列】Hook(一)基本使用

本文来自#React系列教程:https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) 一. 认识hook 1.1. 为什么需要hook Hook 是 React 16.8 的新增特性,它可以让我们在不编写class的情况下…

计算机研究生论文检索方法汇总

计算机研究生论文检索方法汇总 作为一名优质(冤种)计算机在读研究生,检索论文是一项不可或缺的技能之一。 一、paperwithcode paperswithcode是一个免费开放的资源平台,提供了机器学习领域的论文、代码、数据集、方法和评估表。在这里我们可以检索不同…

题目:大石头的搬运工(蓝桥OJ 3829)

问题描述: 解题思路: 官方: 注意点: 1.直观方法无法使用,因为其时间复杂度为O(n2)。带入题目数据n最大为1e5则时间复杂度为1e10,超过了运行限制(默认1e8)。 2.pair不会自动排序&…

vscode安装Prettier插件,对vue3项目进行格式化

之前vscode因为安装了Vue Language Features (Volar)插件,导致Prettier格式化失效,今天有空,又重新设置了一下 1. 插件要先安装上 2. 打开settings.json {"editor.defaultFormatter": "esbenp.prettier-vscode","…

Hex2Bin转换工具文档、Bootloader 、OTA 、STM32等MCU适用

说明:这个工具可以将 Hex 文件 转换为 Bin 格式文件,软件是按自己开发 STM32 OAT 功能需求开发的一款辅助 上位机软件。 有兴趣的朋友可留言探讨。 附加功能: 1.另外可以生成指定大小的bin 格式文件,文件多余的空余位置填充随机…

GZ075 云计算应用赛题第6套

2023年全国职业院校技能大赛(高职组) “云计算应用”赛项赛卷6 某企业根据自身业务需求,实施数字化转型,规划和建设数字化平台,平台聚焦“DevOps开发运维一体化”和“数据驱动产品开发”,拟采用开源OpenSt…

可狱可囚的爬虫系列课程 10:在网站中寻找 API 接口

上一篇文章我们讲述了爬虫中一个比较重要的知识点,如何从 API 接口中获取数据,本篇文章我们继续讲述,如何在网站中寻找 API 接口,我们以“今日头条”网站 https://www.toutiao.com/ 为例。 如上图所示,如果要获取页面…

JumpServer3.0版本-账号管理

账号列表 我这里已经创建好了所以有很多,可以点击资产树列表分类查看 点击创建按钮,添加账号 资产:如果多个设备的账号密码一致可以在资产同事选中 名称:方便辨识即可 用户名:登录设备的账户名 密码:按你登录需求自行选择 添加按钮旁边还有个“模版添加” 此功能便…

Linux第3步_安装Ubuntu操作系统

创建好虚拟机后,就可以安装Ubuntu操作系统了。 1、双击“VMware Workstation Pro”,得到下面的界面。 2、点击“编辑虚拟机设置”,见下图: 3、等几秒钟,得到下面的界面: 4、点击“CD/DVD”,得到…

【SpringBoot】Java MVC 集成 Swagger 生成 API 文档

使用Swagger你只需要按照它的规范去定义接口及接口相关的信息,就可以做到生成接口文档,以及在线接口调试页面。官网: https://swagger.io/ Knife4j 是为Java MVC框架集成Swagger生成Api文档的增强解决方案。 <dependency><groupId>com.github.xiaoymin</groupI…

七款人体感应报警器电路图

人体感应报警器电路图&#xff08;一&#xff09; 人体发出的红外线波长在9&#xff5e;10um之间&#xff0c;属远红外线区。我们利用热释电红外传感器及信号处理集成电路&#xff0c;组装成一个人体红外线感应开关电路报警器&#xff0c;它能依靠人体发出的微量红外线进行开关…

how2heap-2.23-07-unsafe_unlink

unlink的作用 在glibc-2.23的malloc.c中搜索unlink&#xff0c;找到unlink的使用场景 _int_malloc 从恰好大小合适的largebin中获取chunk&#xff0c;发生unlink从比malloc要求大的largebin中取chunk&#xff0c;发生unlink _int_free free之后&#xff0c;与前后空闲的chunk…

认识CUDA

1 基本概念 1.1 什么是CUDA&#xff1f; CUDA(ComputeUnified Device Architecture)&#xff0c;是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并行计算架构&#xff0c;该架构使GPU能够解决复杂的计算问题。 CUDA&#xff08;Compute Unified Device Arc…

copilot插件全解

COPILOT是一个基于AI的编程辅助工具&#xff0c;它可以帮助程序员自动编写代码&#xff0c;提高开发效率。COPILOT的插件主要是为了将其功能集成到不同的编程环境中&#xff0c;方便程序员使用。 目前&#xff0c;COPILOT支持多种编程环境&#xff0c;包括Visual Studio Code、…

stable diffusion 基础教程-图生图

界面 图生图大概有以下几个功能: 图生图涂鸦绘制局部绘制局部绘制(涂鸦蒙版)其常用的也就上面四个,接下来逐步讲解。 以图反推提示词 图生图可以根据反推提示词来获取相应图片的提示词,目前3种主流方式,如下: CLIP反推提示词:推导出的文本倾向于自然语言的描述方式,…

支持下载和阅读的漫画管理工具Teemii

什么是 Teemii &#xff1f; Teemii 是一款专为狂热漫画读者设计的精简 Web 应用程序。它为阅读和管理漫画集提供了一个简单而高效的平台。主要功能包括跨平台访问、浏览器内阅读、强大的元数据聚合器以及馆藏自动更新。Teemii 是专为那些寻求更加个性化和自主的方法来管理漫画…

论文管理器

论文管理器 这个论文管理器仍然存在许多漏洞。目前&#xff0c;通过按照一些例行程序操作&#xff0c;它可以正常工作。我将在有时间的时候改进代码&#xff0c;提供详细说明&#xff0c;并添加新功能。当该管理器的代码进行优化后&#xff0c;我会上传到github上。 一个建立…