【LINUX修行之路】工具篇——Vim的使用及配置

news2024/12/29 9:47:06

在这里插入图片描述

🍿本节主题:vim的使用
🎈推荐阅读:回溯算法 、C++入门(上篇)
💕我的主页:蓝色学者的主页

文章目录

  • 一、前言
  • 二、文本编辑器和IDE
  • 三、选择vim的理由
  • 四、vim操作模式
    • 4.1普通模式(command mode)
      • 光标移动
      • 编辑文本
    • 4.2输入模式(Insert mode)
    • 4.3底行模式(last line mode)
  • 五、vim配置
    • 自己配置
    • 自动配置
  • 六、结语

在这里插入图片描述

一、前言

哈楼,大家好,好久不见,今天我们来学习一款非常好用的文本编辑器:vim,vim作为一款不用鼠标的文本编辑器,熟练各种指令并进行配置是使用他的前提,接下来就让我们一起来学习一下vim吧!

二、文本编辑器和IDE

文本编辑器:只有编辑文本的功能,即不添加扩展的情况下不可以执行,调试代码
IDE :ide是 Integrated Development Environment 的缩写,意为集成开发环境,类似于Vs2022这种集成了很多功能:调试,执行,编辑

其实我们写的代码都是一段一段的文本,写好代码后,将这段文本交给gcc/g++去编译生成可执行程序,vim是一个多模式文本编辑器。

三、选择vim的理由

计算机界有一个段子:程序员只有会用vim的和不用vim的,用好vim后可以让我们写代码更加得心应手,尽管现在大家公认的最强的文本编辑器依然是Vscode,但对于有些场景,例如远程修改配置文件,vim依然是非常好用的文本编辑器,说了这么多,vim的基本操作方式都有哪些呢,一起来看看吧!

四、vim操作模式

vim主要有三种工作模式:普通模式、输入模式、命令模式

  • 普通模式(Normal mode)
    控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入其他模式
  • 插入模式(Insert mode)
    只有在插入模式下,才可以做文字输入,按i进入输入模式,按「ESC」键可回到普通模式。该模式是我们用的最频繁
    的编辑模式。
  • 底行模式(last line mode)
    文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,按 shift+: 进入该模式,按[Esc]退出该模式。

三者关系如下图
在这里插入图片描述

4.1普通模式(command mode)

当我们刚刚进入vim,就是在普通模式下,普通模式又称命令模式,这个模式一般用来快速查阅文件,同时完成一些复制和删除的操作,下面我们整理一些在普通模式下常用的命令

光标移动

既然是方便查阅文件,那么快速移动的功能一定少不了,常用的移动命令如下:

[h,j,k,l] :在普通模式下,我们更倾向使用这四个键来移动光标,他们分别对于←、↓、↑、→

  • 行类

[gg] :使光标回到第一行
[G] :将光标定位到文档结尾

[$ ] :光标定位到每一行的结尾
[^ ] :光标定位到每一行的开头
注:$=shift+F4 ^=shift+F6

  • 单词类

[w] :光标跳到下一个词的开头
[b ]:光标回到上一个词的开头
注:[n+w/b] 就是跳过/回到[n]个词,如[4w/5b]

  • 翻页类

[ctrl+u] :向上翻半页
[ctrl+d] :向下翻半页

  • 查找类

[f+字母] :将光标定位到离你最近的这个字母上

编辑文本

在普通模式下,除了快速浏览文本,也可以进行快速编辑,常用的指令整理如下:

  • 复制类:

yy/nyy :复制一行/复制下面n行
dd/ndd : 剪切一行/剪切下面n行
p/npp :粘贴一行/向下粘贴n行

  • 删除类:

[x /nx] :删除一个字符/删除n个字符
[dd/ndd]:删除一行/删除下面的n行

  • 替换类:

[r] :替换光标所在的字符
[R] :替换光标所在字符,直到按下[Esc]为止

  • 撤销类:

[u]:撤销上一次操作
[ctrl+r]:撤销上一次撤销

  • 跳转类:

[ctrl+g] : 列出所在行的行号
[nG] : 表示移动光标到第n行行首

4.2输入模式(Insert mode)

输入模式顾名思义就是我们编辑代码的模式,绝大多数写代码的时候,都是在此模式下完成的,我们整理一下从普通模式进入此模式的几个命令:

  • 进入插入模式

按「i」进入插入模式后,是从光标当前位置开始输入文字;
按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
按「o」进入插入模式后,是插入新的一行,从行首开始输入文字

4.3底行模式(last line mode)

按住[:] 即可进入底行模式,需要注意的是,底行模式必须从普通模式进入,请一定确保自己处在普通模式

  • 列出行号

「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号。
跳到文件中的某一行
「n」 : n表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字5,再回车,就会跳到文章的第5行。

  • 查找字符

「/字符」: 先按「/」键,再输入您想寻找的字符,一直按「n」会往后寻找下一个相同字符。
注:这里的n就是字母n不是代表数字

  • 保存文件

「w」: 在冒号输入字母「w」就可以将文件保存起来

  • 离开vim

「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim。
「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。

五、vim配置

自己配置

如果想要自己动手配置文件,需要修改对应的配置文件注:一开始是没有这个文件的,我这里给大家贴出配置文件的路径,大家可以创建这个文件,往里面写入一些配置

vim /etc/.vimrc

关于vim的配置信息就在这个配置文件里,大家感兴趣可以去修改一下~

自动配置

比起手动配置,我更推荐大家使用自动配置,这里给出一个一个自动化构建的命令,将他输入到命令行执行即可完成vim的自动化配置,但目前自动化配置的方案只支持 Centos7版本

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

下图是配置完成后的效果展示:
在这里插入图片描述
配置后的Vim支持语法高亮,显示行号等等

注:尽量在自己的家目录下完成vim的配置,因为每个人使用vim的习惯都不同

六、结语

到这里,我们今天vim的学习就告一段落了,大家之后多多练习使用各种指令,尽快熟悉vim的各种操作。
如果你感觉有所收获,可以 点赞 + 收藏 + 关注 支持一下学者,我们下次见~

在这里插入图片描述

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

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

相关文章

springboot项目实现腾讯云的短信验证

前言:可以先去看下腾讯云开通短息服务需要哪些信息。我这里使用自己很久之前申请过的公众号,其他的比如网站,小程序啥的也没有,哈哈哈~。 腾讯云地址: https://console.cloud.tencent.com/smsv2/csms-sign/create接下…

非父子组件的通信

在开发中,我们构建了组件树之后,除了父子组件之间的通信之外,还会有非父子组件之间的通信。这里我们主要讲两种方式: Provide/Inject;全局事件总线; 1、Provide和Inject Provide/Inject用于非父子组件之间…

什么是OAuth2

2.3 什么是OAuth2 2.3.1 OAuth2认证流程 在前边我们提到微信扫码认证,这是一种第三方认证的方式,这种认证方式是基于OAuth2协议实现, OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。同时,任何第三方都可以使…

离散数学-图论-图的基本概念(11)

图的基本概念 1 图 1.1 图的定义 定义1&#xff1a; 一个无向图G是一个有序的二元组<V,E>&#xff0c;其中 &#xff08;1&#xff09;V是一个非空有穷集&#xff0c;称为顶点集&#xff0c;其元素称为顶点或结点。 &#xff08;2&#xff09;E是无序积V&V的有穷多…

什么是安卓版 UI 业务包 SDK?如何接入?

涂鸦 Android 业务包是指包含业务逻辑和 UI 界面的涂鸦垂直业务模块&#xff0c;旨在为基于涂鸦智能生活 SDK 开发的应用提供快速的一站式接入涂鸦业务模块的能力。 概述 目前提供的业务包种类繁多&#xff0c;例如&#xff1a; H5 商城设备配网设备控制IP 摄像机智能场景常…

“深度学习”学习日记。与学习相关的技巧 -- 参数的更新

2023.1.20 在神经网络的学习这一章&#xff0c;学习过了利用 梯度下降法 对参数进行更新&#xff0c;目的是找到是损失函数的值尽量小的参数&#xff1b;像解决这样的问题称为 最优化 。 由于参数空间十分复杂、参数规模十分庞大&#xff0c;导致“最优化”的过程变得困难。 …

C规范编辑笔记(十二)

往期文章&#xff1a; C规范编辑笔记(一) C规范编辑笔记(二) C规范编辑笔记(三) C规范编辑笔记(四) C规范编辑笔记(五) C规范编辑笔记(六) C规范编辑笔记(七) C规范编辑笔记(八) C规范编辑笔记(九) C规则编辑笔记(十) C规范编辑笔记(十一) 正文&#xff1a; 放假了&#xff…

【数据结构】万字深入浅出讲解顺序表(附原码 | 超详解)

&#x1f680;write in front&#x1f680; &#x1f4dd;个人主页&#xff1a;认真写博客的夏目浅石. &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd; &#x1f4e3;系列专栏&#xff1a;C语言实现数据结构 &#x1f4ac;总结&#xff1a;希望你看完…

智能矿山电子封条系统 YOLOv5

智能矿山电子封条系统通过yolov5深度学习技术&#xff0c;对现场画面进出口以及主要的井口等重要地方对矿井人员变化、生产作业执勤状态及出入井人员等状况实时监控分析监测。我们使用YOLO(你只看一次)算法进行对象检测。YOLO是一个聪明的卷积神经网络(CNN)&#xff0c;用于实时…

Google AIY Vision Kit安装及国内配置

Google AIY Vision Kit安装及国内配置1. AIY Vision Kit组装环节Step 1&#xff1a;收集其他附件选择1&#xff1a;使用AIY项目应用程序选择2&#xff1a;使用显示器、鼠标和键盘Step 2&#xff1a;检查硬件清单Step 3&#xff1a;构建AIY Vision KitStep 3.1&#xff1a;获取最…

旺店通·企业奇门和用友BIP接口打通对接实战

旺店通企业奇门和用友BIP接口打通对接实战接通系统&#xff1a;旺店通企业奇门旺店通是北京掌上先机网络科技有限公司旗下品牌&#xff0c;国内的零售云服务提供商&#xff0c;基于云计算SaaS服务模式&#xff0c;以体系化解决方案&#xff0c;助力零售企业数字化智能化管理升级…

Mac和Windows局域网互传文件iPhone和Windows局域网互传文件

生活中&#xff0c;我们可以通过微信和QQ或网盘等等传输工具进而实现文件互传&#xff0c;但是面临一个问题&#xff0c;大文件无法上传&#xff0c;而且受到网速的限制等诸多因素影响&#xff0c;如今我们可以通过局域网进行实现文件互传&#xff0c;进而改变此种囧境。 首先在…

17道Redis 面试题

Redis 持久化机制缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题热点数据和冷数据是什么Memcache与Redis的区别都有哪些&#xff1f;单线程的redis为什么这么快redis的数据类型&#xff0c;以及每种数据类型的使用场景&#xff0c;Redis 内部结构redis的过期策略以及…

KVM安装部署 | 举例安装虚机Windows2012R2

目录 1、基础环境准备 2、KVM的安装 3、开启服务 4、开启图形化界面 5、也可以通过浏览器管理KVM 6、举例安装一个windows2012R2 1、基础环境准备 【关闭防火墙】 systemctl stop firewalld systemctl disable firewalld 【关闭selinux】 修改文件/etc/selinux/config…

Linux常用指令及Web程序的部署

作者&#xff1a;~小明学编程 文章专栏&#xff1a;Linux 格言&#xff1a;热爱编程的&#xff0c;终将被编程所厚爱。 目录 Linux中的常见指令 ls pwd cd 文件操作 touch cat mkdir echo rm cp mv man less vim head tail grep ps netstat Linux权限 搭建Ja…

模电相关知识

6 放大电路中的负反馈 6.1 反馈的基本概念及判断方法 6.4 深度负反馈放大电路放大倍数的分析 6.4.1 深度负反馈的实质 6.4.4 基于理想运放的放大倍数分析 6.4.4.1理想运放的线性工作区 理想运放的性能指标理想运放在线性区的特点 标准运放&#xff0c;有两个输入端和一个…

aws codesuit 在codebuild和codepipeline中集成jenkins

codebuild集成jenkins https://docs.aws.amazon.com/zh_cn/codebuild/latest/userguide/jenkins-plugin.html Setting up a CI/CD pipeline by integrating Jenkins with AWS CodeBuild and AWS CodeDeploy source选择本地的gitlab仓库&#xff0c;创建一个简单的springboot项…

Cert Manager 申请 SSL 证书流程及相关概念 - 一

2022.3.9 用 cert-manager 申请成功通配符证书 (*.ewhisper.cn), 2022.4.30 该证书距离过期还有 30 天&#xff0c;cert-manager 进行自动续期&#xff0c;但是却失败了。&#x1f631;&#x1f631;&#x1f631; 然后过了几天&#xff0c;在 2022.5.8, 最终成功了。如下图&a…

Vue3 项目实战 —— 后台管理系统( pc端 ) —— 动态多级导航菜单顶部侧边联动

前期回顾 0.活在风浪里的博客_CSDN博客-vue2,开源项目,Js领域博主0.活在风浪里擅长vue2,开源项目,Js,等方面的知识,0.活在风浪里关注css,safari,html5,scss,elementui,前端,es6,正则表达式,vue.js,express,ajax,webpack,echarts,json,html,typescript,sass,https,面试,ch…

离散数学-图论-图的矩阵表示(12.1)

图的矩阵表示 1 关联矩阵 定义&#xff1a;设无向图G<V,E>,V{v1,v2,⋅⋅⋅,vnv_1,v_2,,v_nv1​,v2​,⋅⋅⋅,vn​},E{e1,e2,⋅⋅⋅,eme_1,e_2,,e_me1​,e2​,⋅⋅⋅,em​},令mijm_{ij}mij​为顶点viv_ivi​与边eje_jej​的关联次数&#xff0c;则称(mij)nm(m_{ij})_{nm}…