Linux入门---vim的使用
迪丽瓦拉
2025-05-28 18:54:12
0

目录标题

  • 什么是vim
  • 命令模式的操作
    • 光标修改
    • 复制与剪切
    • 内容修改
  • 插入模式
  • 底行模式

什么是vim

vim也是一个笔记本,它不能调试也不能运行但是它拥有多个模式并且有许多实用性功能。我们先来认识一下vim的命令模式,当我们打开vim的时候就是命令模式,在这个模式下不能往文件里输入内容,在键盘中输入的所有内容都会被当作指令来处理,比如说下面的操作:
在这里插入图片描述
按下回车就会出现下面的场景:
在这里插入图片描述
并且这个时候敲键盘是没有反应的,当然如果你瞎按的话还是会有反应的,因为你可能无意间将命令模式改成了其他模式,然后在其他模式下就可以往文本中输入内容,所以这里大家就记住一点,vim刚打开的时候是命令模式,在这个模式下输入的所有内容都会被当作成指令来看待就行了,那这里大家可能就会产生一些疑惑,命令模式有什么意义呢?那这里大家就得先了解一下命令模式的发展背景:命令模式诞生的时候是一个没有鼠标的年代,人们操作电脑的方式就是通过键盘,所以在那个时候创建命令模式的意义就是提高人们编辑文本的效率,比如说将某一行的内容复制粘贴到另一行上,或者将莫一行的因为字符全部都由小写改成大写等等,那么这就是命令模式存在的意义
在这里插入图片描述
我们在命令模式按键盘上的i就可以由命令模式转换成插入模式:
在这里插入图片描述
在这里插入图片描述
当下面出现insert就表明我们这里是插入模式了,这时我们就可以往这个文本中输入我们想要的内容:
在这里插入图片描述
当我们将内容输入完之后就可以输入esc来退回插入模式返回命令模式,再在命令模式中输入shift+;就可以进入低行模式:
在这里插入图片描述
进入了底行模式就可以在最后一行输入一些内容:
在这里插入图片描述
比如说我的文本编辑完了想要退出文件的话就可以在底行输入wq来退出并保存文件:
在这里插入图片描述
按下回车就退出了文件,并且文件中文件中的内容也保存了下来:
在这里插入图片描述
再比如我们这里在编写文件的时候没有出现行号,那么这里我们就可以在底行中输入setnu就可以在文本中显示行号了:
在这里插入图片描述
这就是底行模式存在的意义,它主要是对文件本身做出改变而不是文件的内容。如果我们想要从底行模式退回命令模式的话也是按es键,这里大家要注意的一点就是vim不支持从插入模式直接跳转到底行模式,也不支持从底行模式直接跳转到插入模式,这里大家得注意一下:
在这里插入图片描述
看到这里相比大家应该能够大致的了解vim的三个主要模式,那么接下来我将带着大家详细的了解这三个模式。

命令模式的操作

以下的操作都是在命令模式下执行的操作

光标修改

第一个:shift+4
这个可以将光标移动到当前行的最右边,比如说当前光标的所在的位置如下:
在这里插入图片描述
我们在命令模式下输入shift 4后,光标就来到了当前行的最右边
在这里插入图片描述
那么这就是shift 4的作用将光标直接移动到当前行的最右边,shift+4也就是键盘上的$。
第二个:shift+6
shift+6的功能就是将光标直接移动到当前行的最左边,比如说一开始我们光标所在的位置如下:
在这里插入图片描述
按下shift加6后光标就移动到了当前行有内容的最左边:
在这里插入图片描述
那么这就是shift+6的作用效果,这里的shift加6也就是^.
第三个:shift+g
shift+g的作用就是就是将光标移动到最后一行,比如说一开始光标所在的位置如下:
在这里插入图片描述
我们按一下shift+g就会将光标移动到最后一行的最左边:
在这里插入图片描述
那么这里的shift+g就相当于输入一个大写的G
第四个:gg
命令模式下输入一个gg就可以将光标移动到第一行的最左边,比如说一开始的光标在这个位置:
在这里插入图片描述
那么命名模式下输入一个gg就会将光标移动到第一行最左边的位置:
在这里插入图片描述

第五个:num shift g
这个命令的功能就是将光标移动指定的num行的最左边,比如说一开始的光标在这个位置:
在这里插入图片描述
那么这里我们输入5 shift g就可以将光标移动到第五行:
在这里插入图片描述

第六个:h j k l
这四个字母分别表示四个意思h是将光标向左移动,j是将光标向下移动,k是将光标向上移动,l是将光标向右边移动,当然这里移动光标也可以使用数字键左边的上下左右都可以。

复制与剪切

第一个:yy
在命令模式中输入输入一个yy,会将光标当前行的内容进行复制。
第二个:p
当我们使用yy将想要的内容复制之后,我们就可以使用p在光标所在行的下一行将复制的内容进行粘贴,比如说下面的操作:首先使用yy将光标所在行进行复制
在这里插入图片描述
然后将光标移动到第10行:
在这里插入图片描述
这时我们按一下p就可以看到在return 0的下面出现了一个printf函数,那么这就是p的功能:
在这里插入图片描述
第三个:num p
如果我们想将一个内容复制多份的话就可以输入num p,这样就可以将复制的内容复制num次,比如说下面的操作:首先使用yy将第八行的内容复制一份
在这里插入图片描述
然后将光标移到第十行并输入5 p就可以发现这里将复制的内容在光标的下一行打印了5边
在这里插入图片描述
那么这就是num p的功能,一次性打印多次。
第四个:num yy
yy是将光标所在行进行复制,那么这里的num yy就是将光标所在行和往下的num-1行的内容全部都复制一边,比如说当前光标在这个位置:
在这里插入图片描述
我们输入3 yy就是将第五行和往下的两行都进行复制,也就是将第5 6 7行进行复制,那么我们将光标移动到return 0这一行这时我们按一下p就可以看到在return 0的下面打印了5 6 7行的内容:
在这里插入图片描述
第五个:u
这个指令的作用就是撤回操作,比如说我刚刚用复制粘贴一下子打印了三行内容,那么这里我们输入一个u就可以撤回之前的打印:
在这里插入图片描述
第六个:ctlr r
cltr r就是用来撤回使用的撤回的,比如说我想将第4行的内容打印到第11行就可以使用yy+p组合:
在这里插入图片描述
如果这里我们又不想执行刚刚的粘贴的话,这里就可以按一下u撤回一下刚刚执行粘贴的操作:
在这里插入图片描述
如果我们这时又想要原来的粘贴操作,想要撤回之前的撤回的话就可以输入ctrl +r
在这里插入图片描述
这里就可以撤回之前的撤回。
第七个:dd
这个指令就是剪切,但是这里的剪切我们一般用于删除,输入dd就可以将光标所在行剪切掉,也可以说是删除掉,比如说当前的光标所在行是第四行:
在这里插入图片描述
那么这里按一下dd就可以发现第四行原来的内容不见了
在这里插入图片描述

第八个:num dd
输入dd是剪切第一行,那么输入num dd就是剪切往下的num行,比如说我们当前的光标是在第5行,那么我们输入2 dd就是将第5行和第6行的内容剪切掉:
在这里插入图片描述
第九个:dd p
当我们使用dd将内容剪切掉之后,我们就可以使用p,将剪切掉的内容粘贴到其他的地方上,比如说我们上面剪切了两行,那么把光标移动到第8行按下一个p就可以发现原来第5行和第6行的内容就打印到了第九行和第十行上去了:
在这里插入图片描述

内容修改

第一种:shift ~
这个指令的功能就是将光标所在的文本由大写改成小写,或者将小写改成大写,比如说一开始文件的内容为:
在这里插入图片描述
我们按一下shift+~就可以发现光标所在的大写I变成了小写的i:
在这里插入图片描述
并且光标指向了下一个位置,那么这就是shift+~的功能,那么这里我们按住shift不动,然后不停的按~的话就可以将一整行的内容由大写改成小写,由小写改成大写:
在这里插入图片描述
第二种:shift r
在命令模式中按住shift加r就可以进入替换模式:
在这里插入图片描述
一开始底行中没有显示任何内容,那么这就是命令模式,当我们输入shift加r的时候,我们就可以看到底行出现了英文字replace,那么这就是进入替换模式:
在这里插入图片描述
在这个模式下我们可以输入字符来改变光标所在的内容,比如说一开始光标指向的是printf中的p:
在这里插入图片描述
这时我们按下键盘中的字符就可以发现这里的p替换成了你输入的内容,比如说这时我们输入了一个c就可以看到这里的p改变成了c:
在这里插入图片描述
并且光标往后移动了一个位置,在替换模式下按了删除键,光标就会往前4一格,并还原原来的内容,比如说这里我们按了一下删除键,就可以看到这里的c又变回了原来的p:
在这里插入图片描述
那么这就是shift r的功能。
第三种:n r
按下shift+r是替换光标所在的一个字符,那么按下n加r就替换当前行的n个字符,比如说输入一个5 r就是替换光标所在往后的5个字符的内容:比如说当前的光标在这:
在这里插入图片描述
我们在键盘中输入一个5 r再按下一个a的话就可以看到光标所在并往后的4个字符都变成了a:
在这里插入图片描述
那么这就是n r的功能。

第四种:x
按下x就可以删除光标所指向的内容,比如说当前光标所在的位置如下:
在这里插入图片描述
按下x后就可以发现光标指向的6就被删除了:
在这里插入图片描述

第五种:shift x
单独一个x是删除光标所在的内容,而shift x就是删除光标左边的字符,比如说当前的光标在下面这个位置:
在这里插入图片描述
我们在命令模式输入shift x就可以看到字符5被删除了:
在这里插入图片描述
当然上面的x和shiftx都是支持批量删除的,n x就是往右删除n个字符,n shift x就是往左删除n个字符,这里大家可以试一下。
第六种:w b
在命令模式下输入一个w可以将光标向后移动一个单词的距离,比如说当前光标所在的位置如下:
在这里插入图片描述
我们在命令模式下输入一个w就可以看到光标来到了i上:
在这里插入图片描述
而在命令模式下输入b就是将光标往前挪动一个单词的长度:
在这里插入图片描述
那么这就是w和b指令,大家可以了解了解。

插入模式

插入模式大家肯定不陌生,这个模式就是用来往文本中输入内容的,那么这里大家要知道一点就是不只有输入i才能进入插入模式,输入a或者o都可以进入插入模式,当然还有其他的方法这里我们就不说了。

底行模式

在命令模式下输入shift :即可进入底行模式,那么在底行模式中往命令行输入setnu可以显示行号,输入setnonu可以取消行号,输入wq就是往文件中输入内容并退出文件,输入w!就是强制往文本中输入内容,输入q!就是强制往退出文件,输入wq!就是强制往文件中输入内容并且退出。这里大家可以了解一下,在第行模式中我们可以还可以使用vs指令来打开目录中的另外一个文件来实现分屏操作,比如说我们创建一个文件test3,并且往这个文件中输入一些内容:首先进入test2文件的底行模式:
在这里插入图片描述
在底行中输入vs test3就会出现下面的场景:
在这里插入图片描述
我们使用vim同时打开了两个文件,右边是先打开的test2文件,左边是后打开的test3文件,虽然我们这里打开了两个文件进行编辑,但是我们这里的光标只有一个,所以对应的各种模式以及键盘中输入的内容也只是针对光标所在的那个文件,如果我们想要移动光标的话就得在命令模式中输入ctrl ww这样我们就可以将光标移动到另外一个文件并执行对应的操作,当然如果我们使用vs指令后面加上了一个不存在的文件的话这里就会自动的创建一个该文件出来这里大家要注意一下:
在这里插入图片描述
在该路径下是没有test4文件的,那么这里我们使用vim打开test3文件,并在底行模式中输入vs test4我们就可以看到这里自动创建出来了一个test4文件:
在这里插入图片描述
在这里插入图片描述
那么这就是底行模式中分屏操作,在底行模式中我们还可以批量的替换文件中的一些内容,比如说当前的文件内容如下:
在这里插入图片描述
在底行模式下输入%s/printf/cout/g就可以看到这里的printf全部都改成了cout
在这里插入图片描述
当然这里远远不止替换printf这一个单词,我们还可以替换hello world变成hello friend等等各种内容:
在这里插入图片描述
按下回车就可以看到这里的指定内容全部替换了:
在这里插入图片描述
那么这就是底行模式的内容。

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
A.机器学习入门算法(三):基... 机器学习算法(三):K近邻(k-nearest neigh...
数字温湿度传感器DHT11模块... 模块实例https://blog.csdn.net/qq_38393591/article/deta...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
Redis 所有支持的数据结构... Redis 是一种开源的基于键值对存储的 NoSQL 数据库,支持多种数据结构。以下是...
win下pytorch安装—c... 安装目录一、cuda安装1.1、cuda版本选择1.2、下载安装二、cudnn安装三、pytorch...
MySQL基础-多表查询 文章目录MySQL基础-多表查询一、案例及引入1、基础概念2、笛卡尔积的理解二、多表查询的分类1、等...
keil调试专题篇 调试的前提是需要连接调试器比如STLINK。 然后点击菜单或者快捷图标均可进入调试模式。 如果前面...
MATLAB | 全网最详细网... 一篇超超超长,超超超全面网络图绘制教程,本篇基本能讲清楚所有绘制要点&#...
IHome主页 - 让你的浏览... 随着互联网的发展,人们越来越离不开浏览器了。每天上班、学习、娱乐,浏览器...
TCP 协议 一、TCP 协议概念 TCP即传输控制协议(Transmission Control ...
营业执照的经营范围有哪些 营业执照的经营范围有哪些 经营范围是指企业可以从事的生产经营与服务项目,是进行公司注册...
C++ 可变体(variant... 一、可变体(variant) 基础用法 Union的问题: 无法知道当前使用的类型是什...
血压计语音芯片,电子医疗设备声... 语音电子血压计是带有语音提示功能的电子血压计,测量前至测量结果全程语音播报࿰...
MySQL OCP888题解0... 文章目录1、原题1.1、英文原题1.2、答案2、题目解析2.1、题干解析2.2、选项解析3、知识点3...
【2023-Pytorch-检... (肆十二想说的一些话)Yolo这个系列我们已经更新了大概一年的时间,现在基本的流程也走走通了,包含数...
实战项目:保险行业用户分类 这里写目录标题1、项目介绍1.1 行业背景1.2 数据介绍2、代码实现导入数据探索数据处理列标签名异...
记录--我在前端干工地(thr... 这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前段时间接触了Th...
43 openEuler搭建A... 文章目录43 openEuler搭建Apache服务器-配置文件说明和管理模块43.1 配置文件说明...