当前位置: 首页 > news >正文

Linux的写作日记:Linux基础开发工具(二):vim编辑器

前言

        在上一篇文章,我向各位读者展示了Linux的目录权限以及第一个开放工具——yum的讲解,下面我们紧跟着上篇文章的步伐,继续进行着Linux基础开发工具的学习,今天我们要学习的是——vim编辑器的使用。

1.vim编辑器简介

1.vim编辑器是什么

        编辑器想必各位都不陌生,一般来说,如果你是Windows用户,那么你的电脑上一定会有一个软件,叫做记事本,记事本就是一个最简单的编辑器,我们可以在里面写字、记点东西。

        而Linux的世界里,也存在着一个家喻户晓的编辑器,它就是vim,你可以把它想象成Linux系统下的“超级记事本”——但它比记事本的功能要强大太多,也要复杂的多。可以说,vim是一款专注的编辑器,并且是一个多模式的编辑器。

        当然,vim其实也是Linux下的一条指令~这点各位要记清

2.见一见vim

        在真正认识vim之前,我先带领各位去见识一下vim编辑器的强大之处,当我们想要使用它时,仅仅通过vim + 文件名就可以实现。其界面图如下图所示,当然,我的vim编辑器是加了很多插件的,我会在讲完vim后,带领各位去配置一下自己的vim编辑器。

        我在之前指令部分讲过,如果我们想要查看一个指令存放在哪,用which指令即可实现,所以请各位读者输入下面的命令。

sudo which vim

        此时不难发现,vim是存在在bin目录下的,而我之前讲过,bin目录下存放的都是指令,所以从这就可以印证:vim是一个强大的记事本,并且还是一个指令,不过它的指令还是比较容易学习的,甚至我感觉我都不用说明,它的使用方法就是:

vim 文件名

        使用方法就是如此的容易,下面我给各位先一览vim的界面。

        那么下面废话不多说,开始进入vim的学习。

2.学习使用vim编辑器

        我在上一小节就说过,vim是一个多模式的编辑器,这意味着编辑器有着多种模式,而接下来,正如上图所示,我们将会依次讲解这三种模式,希望各位不要知难而退哦~

1.命令模式

        首先登场的选手就是命令模式,而命令模式其实就是我们输入相关的命令,通过相关的命令而完成我们想要的操作,例如快速将光标定位到第一行,最后一行,中间某一行等等,命令模式的存在,本意就是提高我们的效率的,关于为何提高效率,很简单就可以说明:你是一个程序员,当你的老板给你一个一万行代码的文件,想让你快速定位到2001行找错误的时候,三流的程序员会告诉你,直接通过上下左右键,等个几分钟,直接“快速”定位到2001行,主打一个迅速;二流的程序员会告诉你,直接通过鼠标的滚轮,直接滚到2001行,也很快,至少比上一个快多了(相对法秒杀了);而一流的程序员直接邪魅一笑,直接进入命令模式,输入相关的指令,一下子就到了2001行,直接秒杀了前两个好吧(仅仅就是娱乐一下,请各位前辈不要打我┭┮﹏┭┮)。这便是展示了命令模式的效率之高,下面我们就来学习命令模式相关的命令喽!

        对了,当我们按键盘的ESC键的时候,就可以进入vim的命令模式。当然,我们处于其他模式的时候,按这个键也可以一键回到命令模式。当然,vim默认的就是命令模式

1.gg

        这个命令是实现将光标快速定位到文件的开头,可谓是十分的好用,当我们处理一个十万行代码的文件时,此时当我们在中间的时候,可能会遇到想要去文章开头的需求,此时我们进入命令模式输入这个指令,就可以满足我们的需求。

2.n+gg

        当我们想要快速定位到文章某一行的时候,这个指令就可以帮助我们实现。一般在处理大型数据的时候喜欢用这个。

3.shift+g

        这个指令可以帮助我们实现快速定位到文章末尾,和第一行指令恰恰相反。

4.n+shift+g

        这个指令也可以做到快速定位到文件的第n行

5.hjkl进行上下左右光标移动

        可能有读者看到这个指令的时候会懵,这个长玩意是什么东东?其实,这四个键对应着我们键盘的左、下、上,以及右,可以控制着光标的移动,这个时候可能有读者就好奇了,我们键盘的不是就有上下左右键吗?为什么还需要额外设置好这四个键位,其实,这和我们之前的键盘设计有关,看看下图。

        此时上面的图就是之前前辈们用的老式键盘,仔细看,发现这个键盘并没有上下左右键,于是为了让当时的开发者方便光标的移动,于是设计好了这四个键位专门代表着方向,当然,就算是现在,也还是会有这样的键盘的,我相信的读我文章的朋友肯定有不少喜欢打FPS游戏的,磁轴键盘算是一个比较热门的键盘了,目前大多数的磁轴键盘的键很少,所以是没有上下左右这四个键位的,于是乎为了方便在vim进行光标移动,我建议读者还是知晓这个知识点的。

6.yy

        当我们写代码的时候,难免会出现复制粘贴的时候,此时这个指令解决了复制的问题。

7.n+yy

        当然,我们也是可以多行复制的,此时我们只要在yy前面加上我们想要复制行的数量,就可以实现多行复制。为了不让指令分类变多,我从这里给各位说好:如果我没有特别提出,那么之后的指令都是可以n+指令的。

8.p

        有复制,就有粘贴,此时我们可以输入这个指令实现粘贴操作,此时会把目标结果粘贴到当前行的下一行。粘贴也是支持多行粘贴的,只要n+p就可以将内容粘贴n遍。

9.dd

        讲完了复制粘贴,接下来我们还有一个经常使用的操作:剪切,此时输入dd指令就可以剪切当前行,之后输入p指令就可以进行粘贴;当然,如果你没有后续操作,那么dd指令同样可以当做删除指令使用。

10.x

        我们在检查自己代码的时候,可能会遇到下面的情况:想要删除代码中的几个字符,此时我们就可以使用x指令来实现单个字符的删除了,当然,如果我们想要多个字符,那么依旧可以用n+x的方式进行多个字符的删除。

11.shift+·

        当我们想要实现文本中的小写字母快速切换到大写字母的操作,就可以使用上面的指令,进行大小字符的快速切换。

12.r

        当我们想要进行文本替换的时候,就可以使用这个指令,进行单个字符的替换;当然,我们想要替换多行,就可以使用n+r的操作进行多个字符的替换。当然,我个人感觉这么使用还是不太方便,vim的开发人员应该也是觉得这个指令用起来不太舒服,于是下面这个指令(也是一个模式的替换)就出现了。

13.shift+r

        这个指令的作用是进入替换模式,这个模式的功能和它的名字是一样的,当我们想要大范围文本替换的时候,就可以进入替换模式进行文本的替换,由于这个模式没有什么可讲述的,所以我就不把它当做一个真正的模式讲述了。当然,如果我们想要

14.u

        在我们日常工作的时候,可能会出现不小心删除一个重要函数的错误,这个时候,我们就需要进行撤销操作了,没错,vim也是具有撤销指令的,此时我们输入u即可完成撤销,当然,当我们退出vim,之后在进入vim时,就不能完成撤销了,因为此时vim是采用的当前的记录,当前由于我们什么都没干,因此想要撤销,就必须在删除重要信息时不退出vim编辑器。

15.ctrl+r

        当我们完成撤销操作的时候,还有可能会遇到不想撤销的情况,此时我们按上面的指令,即可对撤销在进行一次撤销,因此,这两个指令可以看做是一个闭环的指令。如上图所示。

16.shift+zz

        当我们想以命令模式进行vim编辑器退出的时候,输入此命令就保存并退出

        以上就是vim编辑器中命令模式的相关指令,这些指令并不是vim编辑器的全部,但是我个人认为这一部分是重点,因此我希望各位读者可以好好的掌握这些指令,下面我们进入插入模式的讲解。

2.插入模式

        插入模式就是我们熟悉的编辑模式,说大白话就是,我们平常写代码什么的都是在插入模式进行的,当我们键盘输入a、i,o的时候,便可以进入插入模式,此时我们就可以进行代码的编写了,插入模式我就讲述这么多了,其实插入模式是三个模式中最简单的了,因为它不需要进行命令的填写,我们仅需记住如何进入插入模式即可。当然,插入模式是不可以自己退出的,如果我们想要退出vim的话,需要先敲击ESC键进入命令模式,之后输入shift+zz即可保存并退出。

3.底行模式

        底行模式是除去命令模式,我个人认为第二复杂的模式了,它同样也需要记住一些相关的命令,这些命令都是比较容易的,因为它有些功能通过图片就可以看出具体的功能,因此我会搭配一些图片进行相关指令的讲解。

        当然,在进入底行模式之前,我个人建议各位首先需要进入命令模式,因为命令模式可以看做是vim的基石,通过命令模式,我们可以进入插入模式,底行模式等等。当我们已经处于命令模式的时候,此时我们就可以输入:键进入底行模式了,接下来我要开始讲述相关的指令了。

1.w

        这个指令代表着保存指令,当我们写上一段代码的时候,我建议各位还是保存一下自己写的代码,避免自己电脑因为各种问题从而让自己写的代码丢失了,这就得不偿失了(血的教训)。当然,如果我们w前面加上!,代表着强制保存,多用于适应一些无法普通保存的情况。

2.q

        当我们想要退出文件的时候,除了在命令模式输入相关指令外,底行模式也可有退出文件的指令,注意:这个指令并没有保存的功能,因此我建议各位不要使用这个指令,除非你仅仅是观看文件。当然,这个指令前面加上!,也代表着强制退出。

3.wq

        熟悉了前两个指令,这个指令的功能想必各位都知晓了,它代表着保存并退出,和Shift+zz的功能一样。同样的,这个指令前面也可以加~,代表着强制保存并退出,这在我们之后配置sudo的时候会遇到。

4.set nu

        一般来说,我们的vim编辑器是不给我们展示行号的,当我们输入这个指令时,就可以添加行号。其效果图如下所示。

5.set nonu

        这个指令可以进行取消行号的操作。

6.#+n

        这个指令可以帮助我们跳转到相应行号,当然,最好搭配着第四个指令一起,因为从上往下数行号我认为还是不怎么优雅的。

7./关键字

        当我们想要查找关键词的时候,就可以使用这个指令,先按下/键,然后在输入我们想要查找的单词,就可以快速定位到相应的关键词,如果第一次不是我们想要找寻的,那么我们可以按n键继续往后进行检索。

8.!command

        当我们想要在vim进行bash操作的时候,就可以使用这个指令,就比如我想要在vim下通过man指令查询相关的函数,就可以输入!man 函数名,这个场景我们以后会经常遇到,希望各位掌握,效果图如下。

9.vs + other

        之前我们在进行数据结构学习的时候,尝尝会遇到下面的场景:把头文件和源文件放到一个屏幕里进行找bug,在VS2022,我们仅需通过鼠标挪动文件,就可以实现分屏操作。在vim下,我们也可以进行分屏的操作,只需在底行模式输入:vs + 文件名即可,其效果如下所示。

10.ctrl+ww

        当我们想要光标从左边的文件跳到右边的时候,输入这个指令就可以执行。

3.补充两个命令模式常用的指令

        我们在写代码的时候,难免会出现多行注释的情况,此时仅仅依据我们上面所学习的知识,我们只能通过进入插入模式,一行一行的进行注释,可谓是十分的麻烦,所以此时我们就需要用到一个命令来完成注释的操作,不过这个命令是很复杂的,下面我会通过拆步的方式给各位一步一步讲解。

1.多行注释

1.按下ctrl+v

        当我们在命令模式按下这个指令的时候,其实也是进入了一个比较特殊的模式,只不过目前我学习的比较浅,还不知道这个模式的名称,我先自己命名一番,我愿把它称其为多行书写模式。至于为何这么取名,看下面的步骤就容易知晓了。

2.hjkl进行光标的操作

        此时我们需要通过光标进行上下左右的操作,此时我们可以选中上图的1-11行,如下图所示。

3.输入shift+i

        此时我们输入这个指令,其实就是相当于进入了插入模式,此时我们光标会定义到第一行,此时我们在第一行输入//即可。

4.按下ESC键

        当我们按下ESC键的时候,就会发现我们选中的那几行都被注释了,这便是多行注释的完整操作,看似很复杂,其实一点也不简单(bushi),只要我们多使用就好了。

2.多行去注释

        我们有着添加注释的需求,自然也会有去掉注释的需求,此时各位依旧跟着我的脚步走,就可以完成多行注释,或者是多行字符的删除。

1.按下ctrl+v

        依旧是进入这个模式。

2.hjkl进行行选择

        依旧用这四个方向进位进行行的选取,此时我们需要旋球12行,还有往右移一列,如下所示。

3.d

        之后我们直接输入d,就可以完成删除操作了,非常的容易。这就是多行注释删除的命令。

4.vim的配置

        我在文章刚开始的就说过,我们的编辑器是可以进行配置的,就比如我们可以让界面变的更精致一些,让代码可以自动补全等等,想要实现上面的操作,我们就需要进行vim的配置,由于vim的配置比较繁琐,因此我就简单的给各位讲述一下如何进行vim的配置,不过各位放心,我会在讲完如何配置以后,直接给各位一个配置好的软件,这样你们的vim的编辑器就会和我的一样了。

1.配置文件的位置

        在目录/etc下面,有一个叫做vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。当然,一般来说都是每个用户拥有自己的vim配置,因此我们很好在这个文件进行vim配置。一般我们都是从自己用户的主目录下,建立自己私有的配置文件,将其命名为:“.vimrc”。例如,在root的用户下,通常会存在这个文件,如果没有,那么就创建。不过我们现在一般都是普通用户,因此,我们可以在自己的家目录下建立这个文件。

2.常用的配置选项

        这里我就懒得写了,因为我自己的vim编辑器都不是自己配置的,我直接抄的别人的((#^.^#))。

3.一键配置vim

VimForCpp: 快速将vim打造成c++ IDE,各位可以通过这个链接进行自行的配置,里面的大佬会告诉你如何进行配置,当然,这里我还是给各位提个醒:各位下载那个软件的时候一定要是普通用户,不然可能出现不可逆的错误,并且要按着人家的说法一步一步执行,不要一口吃撑一个胖子。当然,当你配置完成的时候,你可以重启的你的Xshell或者虚拟机,从而完成最后的配置。

5.关于sudo

        可能有些读者看完我的上一篇文章,自己尝试进行了使用sudo指令,却发现,系统会报下面这个错。

        这代表着系统并不信任你,此时想要解决这个问题,我们需要去到一个文件进行相关的用户配置,从而可以使用这个指令。

        首先我们需要输入下面的指令,从而打开相应的配置文件。

vim /etc/sudoers

        我们打开这个界面以后,可以先设置好行号,然后输入相应的命令到100行(一般都是),就是会出现下面这个界面

        100行到101行其实都是被系统信任的用户,此时我们可以模仿上面的代码,将名字改为自己当前用户的名字即可。配置完以后,我们就可以使用sudo了。

6.总结

        文章到这里,vim编辑器的相关内容我也是讲完了,我个人认为讲述的还是比较一般的,因为我感觉我的文学功底还是太浅了,导致有些操作我知道,但我无法用文字表达出来,如果有些读者拗口的地方,希望读者可以为我指正,我会改掉这些毛病的。不知不觉也是来到了九月末了,还记得两年前,我还是个大一新生,而现在已经成为了大三老登,有点怀念过去了,感觉我越来越成了念旧的人了。伤感话就不多说了,天气逐渐变冷,各位读者注意保暖。一起学习的时光总是短暂的,那么各位大佬们,我们下一篇文章见了。

http://www.dtcms.com/a/405828.html

相关文章:

  • nginx缓存、跨域 CORS与防盗链设置(2)
  • 多级缓存架构:性能与数据一致性的平衡处理(原理及优势详解+项目实战)
  • 今天我们开始学习nginx缓存功能,CORS以及nginx防盗链
  • 前端缓存好还是后端缓存好?缓存方案实例直接用
  • 小九源码-springboot050-基于spring boot的苏蔚家校互联管理系统
  • 陕西西安网站建设公司大学生网页设计
  • Redis 面试常考问题(高频核心版)
  • 开发时如何彻底禁用浏览器表单自动填充缓存
  • 零基础新手小白快速了解掌握服务集群与自动化运维(七)Nginx模块--Nginx反向代理与缓存功能(二)
  • 【项目实战 Day7】springboot + vue 苍穹外卖系统(微信小程序 + 微信登录模块 完结)
  • python+springboot+uniapp基于微信小程序的停车场管理系统 弹窗提示和车牌识别
  • -bash: ssh-copy-id: command not found的两种解决方法
  • 电商网站新闻怎么做即速应用小程序官网
  • 上海网站建设接单互联网+大学生创新创业项目官网
  • 我是如何用Claude Code打造通用AI Agent的
  • 使用Nexus Repository Manager搭建私有自建 pip 源
  • 9.二叉树(上)
  • DNS 服务器与 DHCP 服务器详解及配置指南
  • 中国建设银行官网站招聘频道如何不花钱做网站
  • 恢复快照(需先暂停 / 关闭虚拟机,避免数据不一致)
  • 九、OpenCV中视频的录制
  • ASP.NET网站建设实战企业网页模板图片
  • 分布式机器人多机协同巡检系统设计
  • 滑动窗口题目:统计「优美子数组」
  • list 迭代器:C++ 容器封装的 “行为统一” 艺术
  • 专题:2025年AI Agent智能体行业洞察报告|附110+份报告PDF、数据仪表盘汇总下载
  • docker部署使用
  • 信息安全基础知识:05物理与环境安全
  • 【双机位A卷】华为OD笔试之【队列】双机位A-篮球游戏【Py/Java/C++/C/JS/Go六种语言】【欧弟算法】全网注释最详细分类最全的华子OD真题题解
  • 考研复习-线性代数-第二章-矩阵