vim编辑器的使用【vim常用指令介绍】

embedded/2024/12/23 15:38:30/

1.1 vim 简介

        vim 编辑器最初是 vi 编辑器,vi 编辑器是 Unix 系统最初的编辑器。允许查看文件内容和在文件中移动、插入、编辑和替换文本。后来开发人员对它做了一些改进。并重命名为 vim

1.2 学习 vim 的理由

        因为几乎任何一个发行版都有 vi/vim 编辑器,在嵌入式 linux 上,通常也会集成 vim 编辑器,所以说 vim 编辑器大部分的版本都是支持的,所以就要学习 vim。 

1.3 vi 和 vim 的关系

        vim 是 vi 的加强版,vi 的命令基本全部可以在 vim 上使用,而且比 vi 使用起来更加容易。因为这两个是一样的,所以在后面的学习中,不对 vim 和 vi加以区分。

1.4 打开 vim 编辑器

打开控制台,输入以下命令:

vi test.txt

        这里的文件名为 test.txt,这样就打开了文本编辑器。如果打开的文件不存在,它会新建一个文件,而文件存在,会直接打开,例如我们想要打开位于桌面的test.txt文件,该文件中的内容如下图所示。

 我们在终端中输入 vim test.txt 即可打开,如下两张图所示。


 

1.5 vim编辑器的三种模式

vim三种模式分别为:一般模式、插入模式、命令行模式。三种模式之间的关系如下图所示。

 1.6 vim编辑器移动光标

      在 vim 编辑器中,由于没有图形界面,所以不能通过鼠标来移动光标,光标的移动是通 过上下左右按键来实现的,如果使用的键盘是没有上下左右按键的小键盘,可以使用键盘上的 H J K L 按键来完成光标的移动。每个按键对应的功能如下图所示:

1.7 vim编辑器支持快速定位 

      在一般模式下双击键盘上的 g ,对应的功能为定位光标到第一行。 在一般模式下点击键盘上的 G ,对应的功能为定位光标到最后一行。 如果想要定位到具体的行数,可以在一般模式使用 ngg ,以移动光标到第 3 行为例子, 则输入 3gg 或者 3G。
             nG                                                           将光标定位到第n行 

1.8 vim编辑器的文本的复制和粘贴

      下面讲解 linux 中文本的复制和粘贴操作。 首先是单行内容的复制,在一般模式下,将光标移动到要复制内容的行首,然后按字母 y/Y 进行复制,接着把光标移动到要粘贴的地方,点击字母 p 来进行粘贴 。
      如果要复制多行内容,先将光标移动到要复制内容的行首,然后按字母 v ,左下角会出现 VISUAL ,然后使用键盘的上下左右按键选择要复制的文本,选择完成之后,按字母 Y/y 进行文本的复制。

1.9 vim编辑器使用快捷键来复制

      也可以双击字母 y 来进行内容的复制,然后将光标移动到要复制的地方输入字母 p 来进行单行的复制,如下图所示:

      而如果想复制多行,也可以使用 nyy 命令来完成,该命令是复制当前行及以下行的 n 行,比如要复制 4 到 6 行,3 行的内容,输入命令 3yy ,然后把光标移动到第 n 行,输入字母 p,这样就把内容粘贴在第 n+1 行的位置上了,如下图所示。 

 

注:在 windows 上使用的复制粘贴命令分为“ctrl+c”“ctrl+v”,而在 ubuntu 中除了上面 两个小节所讲述的方法,在 ubuntu 中使用鼠标进行内容的框选,然后使用复制命令 “ctrl+shift+c”,最后输入“ctrl+shift+v”快捷键也可以进行粘贴。

1.10 vim编辑器的删除 

      dd 命令是删除光标所在行内容,以删除第八行为例,在一般模式下,将光标移动到第八 行,然后双击 d ,那么第8行就被删掉了。
      同样可以使用 ndd 命令来删除多行,比如删除第 9 到 11 行内容,可以直接将光标移动到第九行,输入命令 3dd,则这 3 行内容就被删掉了。

      也可以删除指定范围行的内容,命令格式为 n1,n2d ,该命令需要在命令行模式下输入。 以删除第 1 行到第 6 行的内容为例,首先点击“冒号”进入命令行模式,然后输入 1,6d,然 后输入回车,这样 1-6 行就全被删掉了。

1.11 vim编辑器的撤销 

      在一般模式下,输入字母 u 来撤销之前的内容,进行内容的回退。 反撤销是 ctrl+r 。撤销和反撤销都是一般模式下进行的。

1.12 vim编辑器的查找 

      在 ubuntu 的 vim 编辑器中,查找命令是通过 / 或者 ?来实现的。以查找“da”内容为例,现首先进到了命令行模式,点击字符“/”并输入 da 。输入完成之后敲击回车,就会找到“da” 了。查找完成之后点击字母“n”,会向下查找内容,而“/”和“?”查找的区别在于,“/”为向下进行查找内容,而“?”向上进行内容的查找。

1.13 vim编辑器的替换 

      替换命令的格式为 %s /old/new/g 。
      以 “nihao” 替换成 “zaima” 内容为例子 , 首先进入到命令行模式 ,输 入 %s /nihao/zaima/g,然后点击回车进行内容的确定。

1.14 vim 编辑器的保存

q ! :强行退出
wq :保存退出
w : 保存但不退出
q :退出没有编辑过的文本【如果想直接退出,即只是浏览了文件中的内容,但并没有对文件进行编辑】
直接输入冒号进到命令行模式,如果想要保存退出,直接输入 wq ,然后回车,这样就保存退出了。 

1.15 vim编辑器文件的对比

      vimdiff file1 file2 file3
vim 编辑器可以进行文件的对比,使用的命令为 vimdiff。


http://www.ppmy.cn/embedded/93238.html

相关文章

MySQL5.7之数据库初始化过程

文章目录 参考在执行这条命令后mysqld做了什么? 参考 本文章参考 https://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization.htmlMySQL5.7源码安装 当通过tar包或者源码包安装完MySQL之后,需要执行数据目录初始化操作 ## 如果不指定--…

Vue 路由的hash模式和history模式有什么区别

在Vue.js框架中,路由管理是单页面应用(SPA)不可或缺的功能。Vue 路由提供了两种模式:hash模式和history模式,这两种模式主要负责处理URL的变更而无需重新加载整个页面,实现前端路由的功能。尽管它们的基本职…

什么是Docker | Docker入门及应用

1 Docker简介 1.1 什么是Docker Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 …

golang使用channel实现读写锁

package mainimport ("fmt""sync""time" )// RWLock 实现一个简单的读写锁 type RWLock struct {readerCount int // 当前正在读取的读者数量writerCount int // 当前正在写的写者数量readerChan chan struct{} // 用于控制读…

跟《经济学人》学英文:2024年08月03日这期 Britain’s railways go from one extreme to another

Britain’s railways go from one extreme to another Departing: privatisation. Destination: centralisation 出发:私有化。目的地:集中化 depart:出发 privatisation:美 [ˌpraɪvətaɪ’zeɪʃən] 私有化;民营化;私营化…

我在高职教STM32——I2C通信入门(3)

大家好,我是老耿,高职青椒一枚,一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次,同行应该都懂的,老师在课堂上教学几乎是没什么成就感的。正是如此,才有了借助CSDN平台寻求认同感和成就感的想法。在这里,我准备陆续把自己花了很多心思设计的教学课件分…

【LeetCode】组合

目录 一、题目二、解法完整代码 一、题目 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1: 输入:n 4, k 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] …

【网络安全】玲珑安全第四期

鉴于玲珑安全漏洞挖掘前三期课程取得的优异成绩和获得的强烈反响,我们决定启动玲珑安全第四期漏洞挖掘培训计划。 文章目录 往期学员收获基础学员报喜(部分)课程反馈第四期课程课程内容免费课程往期学员收获 第一期课程总结及学员收获:->点我查看第一期学员收获<- …