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]进行切换
(注:切换过程中注意光标闪动)
在这里插入图片描述💖💖本章到此结束,感谢阅读,你的支持就是我创作的动力,感谢支持。💖💖
🌈如果你只做你能做的事,你永远不会比现在更好。🌈

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Prometheus实战篇:Prometheus监控redis

准备环境 docker-compose安装redis docker-compose.yaml version: 3 services:redis:image:redis:5container_name: rediscommand: redis-server --requirepass 123456 --maxmemory 512mbrestart: alwaysvolumes:- /data/redis/data: /dataport:- "6379:6379"dock…

有没有游泳可以戴的耳机?游泳耳机入耳式好,还是骨传导好

游泳是一项既能锻炼身体又能让人放松心情的运动。我们知道,音乐能够为我们的水上时光增添更多的乐趣。那么,在众多游泳耳机中,如何选择一款既适合自己的需求又具备良好性能的产品呢? 首先,我们要了解的是,…

基于ssm校园线上订餐系统的设计与实现论文

摘 要 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古…

docker (portainer 安装nginx)

汉化版步骤可以参考:写文章-CSDN创作中心https://mp.csdn.net/mp_blog/creation/editor/135258056 一、创建容器 二、配置端口,以及容器卷挂载 挂载目录配置:(下方截图的目录如下,docker 改为 mydocker,用docker作为根…

jenkins忘记密码后的操作

1、先停止 jenkins 服务 systemctl stop jenkins 关闭Jenkins服务 或者杀掉进程 ps -ef | grep jenkins |awk {print $2} | grep -v "grep" | xargs kill -9 2、找到 config.xml 文件 find /root -name config.xml3、备份config.xml文件 cp /root/.jen…

【SpringBoot】-Spring MVC项目如何传递参数?

作者:学Java的冬瓜 博客主页:☀冬瓜的主页🌙 专栏:【Framework】 主要内容:使用SpringBoot的SpringMVC框架传递各种参数,如传对象,传表单,传文件。后端对前端的请求信息的获取&#…

shell sshpass 主机交互 在另外一台主机上执行某个命令 批量管理主机 以及一些案例

目录 作用安装 sshpasssshpass 用法在远程主机执行某个命令 案例批量传输密匙批量拷贝文件批量修改密码 作用 就是用一台主机 控制另外一台主机免交互任务管理工具方便批量管理主机使用方法就是在ssh 前边加一个 sshpass 安装 sshpass # 安装 sshpass yum -y install sshpas…

【MySQL】数据库之MHA高可用

目录 一、MHA 1、什么是MHA 2、MHA 的组成 3、MHA的特点 4、MHA的工作原理 二、有哪些数据库集群高可用方案 三、实操:一主两从部署MHA 1、完成主从复制 步骤一:完成所有MySQL的配置文件修改 步骤二:完成所有MySQL的主从授权&#x…

Elasticsearch:Serarch tutorial - 使用 Python 进行搜索 (二)

这个是继上一篇文章 “Elasticsearch:Serarch tutorial - 使用 Python 进行搜索 (一)” 的续篇。在今天的文章中,我们接着来完成如何进行分页及过滤。 分页 - pagination 应用程序处理大量结果通常是不切实际的。 因此&#xff0…

【计算机算法设计与分析】棋盘覆盖问题(C++_分治法)

文章目录 题目描述测试样例算法原理算法实现参考资料 题目描述 在一个 2 k 2 k 2^k \times 2^k 2k2k个方格组成的棋盘中,若恰有一个方格与其他方格不同,则称该方格为一个特殊方格,且称该棋盘为一个特殊棋盘。显然,特殊方格在棋…

ssm基于vue框架和elementui组件的手机官网论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本手机官网就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息&#x…

uniCloud 云函数

相对于云函数,官方更推荐使用 云对象 新建云函数 编辑云函数 uniCloud-aliyun/cloudfunctions/hello_func/index.js use strict; exports.main async (event, context) > {let {name} eventreturn 你好,${name}! };云函数接收的参数从event中解构获…