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

news/2024/7/21 12:41:31 标签: linux, 编辑器, vim, 后端, c++, c语言

vim_0">💫Linux开发工具vim

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

vim_3">  ⭐️vim的模式

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

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

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

vim_15">💫vim基本操作

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

vim_17">  ⭐️vim插入模式基本操作

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

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

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

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

vim_29">  ⭐️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_77">  ⭐️vim底行模式基本操作

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

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

vim_87">    🌟不退出vim,使用命令行

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

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

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


http://www.niftyadmin.cn/n/5291687.html

相关文章

Spring Boot项目Jar包加密:防止反编译的安全实践

文章目录 1. 引言2. 背景3. Jar包加密方案3.1 使用Java混淆工具3.2 使用Jar包加密工具3.2.1 示例:使用JCryptor对Jar包进行加密 4. 加密后的Jar包的运行5. 安全性与性能考虑5.1 安全性考虑5.2 性能考虑 6. 拓展功能与未来展望6.1 数字签名与验签6.2 使用加密算法库 …

kubeadm创建k8s集群

kubeadm来快速的搭建一个k8s集群: 二进制搭建适合大集群,50台以上。 kubeadm更适合中下企业的业务集群。 部署框架 master192.168.10.10dockerkubelet kubeadm kubectl flannelnode1192.168.10.20dockerkubelet kubeadm kubectl flannelnode2192.168.1…

GitHub教程-自定义个人页制作

GitHub是全球最大的代码托管平台,除了存放代码,它还允许用户个性化定制自己的主页,展示个人特色、技能和项目。本教程旨在向GitHub用户展示如何制作个性化主页,同时,介绍了GitHub Actions的应用,可以自动化…

Python 使用fake_useragent生成随机User-Agent

大多数情况下,需要设置请求头。而在请求头中,随机更换User-Agent可以避免触发相应的反爬机制。使用第三方库fake-useragent便可轻松生成随机User-Agent。 安装使用 以下简单介绍fake-useragent的安装使用,以及可能出现的问题和解决方法。 安…

labuladong日常刷题-双指针 | LeetCode 83删除排序链表中的重复元素 5最长回文子串

双指针操作链表与字符串 LeetCode 83 删除排序链表中的重复元素 2023.12.28 题目链接labuladong讲解[链接] ListNode* deleteDuplicates(ListNode* head) {/*暴力求解ListNode* cur new ListNode();ListNode* prenode cur;cur->next head;cur cur->next;while(cu…

微软发布安卓版Copilot,可免费使用GPT-4、DALL-E 3

12月27日,微软的Copilot助手,可在谷歌应用商店下载。目前,只有安卓版,ios还无法使用。 Copilot是一款类ChatGPT助手支持中文,可生成文本/代码/图片、分析图片、总结内容等,二者的功能几乎没太大差别。 值…

神经网络常用模型总结

本文目录: 【一】目标检测中IOU的相关概念与计算【二】目标检测中NMS的相关概念与计算【三】One-stage目标检测与Two-stage目标检测的区别?【四】哪些方法可以提升小目标检测的效果?【五】ResNet模型的特点以及解决的问题?【六】R…

一种删除 KubeSphere 中一直卡在 Terminating 的 Namespace--KubeSphere Logging System的简单方法

文章目录 一、问题提出二、删除方法1,获取kubesphere-logging-syste的详细信息json文件2,编辑kubesphere-logging-system.json3,执行清理命令 三、检查结果 一、问题提出 在使用 KubeSphere 的时候发现有一个日志服务KubeSphere Logging Sys…