嵌入式全栈开发学习笔记---vim编辑器

目录

进入vim编辑器

Shift+zz退出编辑器

vim的三种模式

命令模式

插入模式

yy复制一行

p粘贴一行

nyy复制多行

dd剪切一行

ndd剪切多行

x删除一个字符

nx删除多个字符

u撤销上一次操作

shift+g从第一行如果快速调到最后一行

gg回到第一行

page+down & page+up往下翻页&往上翻页

home & end去行末&回到行首

“ * ”查找

底行模式

冒号进入底行模式

w+回车 q+回车 wq+回车 wq!+回车

冒号底行模式下直接输入数字

斜杠进入底行模式

/ 关键字

n查找下一个

nohl去掉高亮

set nonu关闭行号

set nu调出行号

%s/old/new将old替换成new

Esc键退出编辑器的某种模式


vim是Linux中常用的一个编辑器,之后我们写代码就是使用这个vim来写。

几乎所有的Linux里面都有一个默认的编辑器vi,但是有一些Linux系统没有vim,如果没有vim就可以用vi。但是大部分Linux都是有vim的。

进入vim编辑器

当我们输入vim按回车键之后就进入了vim编辑器

Shift+zz退出编辑器

想要退出的话按shift+zz

vim的三种模式

命令模式

插入模式

底行模式

现在我们来挨个介绍这三种模式下的工作命令

命令模式

vim如何进入命令模式?

比如,我们想要用vim打开一个hello.c文件,我们输入:

这个时候vim就是检测hello.c是否存在,如果不存在,它就会创建一个再打开,如果存在它就直接打开

当你敲下回车时,就进入了hello.c文件,进来之后默认是命令模式。

注:如果想要退出,一样可以按shift+zz

插入模式

我们要让它进入插入模式,就可以往里面插入一些东西。

vim如何进入插入模式?

通过按键i(insert插入)或者a(append附加)进入插入模式

当我们按下i或者a之后,它就提示我们就进入了插入模式

注:如果想要退出插入模式,可以按键盘上的Esc键退出,退出后这里就没有“插入”两字的提示了,这个时候即为命令模式。

当我们处于插入模式时,我们就可以在里面敲代码了

比如我们简单演编辑一个C言语程序

yy复制一行

如果我们想要复制东西的时候,一定要先退出插入模式,进入命令模式。

比如想要复制头文件,就把光标放在头文件所在行,按yy就复制好一行

p粘贴一行

那比如说我们粘贴在第8行,就把光标放在第7行,按一下p就粘贴在第8行了。

nyy复制多行

如果想要复制多行,就按nyy,比如想要复制7行,就按7yy

然后想要复制在第11行将光标放在10行,按p就粘贴下来了

dd剪切一行

如果想要剪切一行,就按dd。

比如想要剪切这个:

那就光标移动到这一行,

按dd就剪切掉了

剪切掉之后,下一行会自动顶上这个位置。

ndd剪切多行

如果想要剪切10行,就是10dd

x删除一个字符

如果想要只删除一个字符,就把光标选中哪个字符就按x

nx删除多个字符

同样如果你想删除多个字符就加上数字,比如你想删除这5个字符,就按5x

u撤销上一次操作

如果你删错了想要撤销就按u

shift+g从第一行如果快速调到最后一行

gg回到第一行

以上这些命令都是在命令模式下进行的,不要在插入模式下进行!

page+down & page+up往下翻页&往上翻页

如果我们写的代码超出了一个窗口了,想要翻回到上面看看,这个时候,我们滚动鼠标,你会发现窗口没有往上滚动,这和我们用其他代码编辑器的操作不太一样,我们应该怎么办呢?

一般在Linux中我们不采用滚动鼠标的方式往前或者往后看,我们一般是按键盘上的方向键,page+down,page+up,表示翻页。

home & end去行末&回到行首

如果我们的光标在这里:

我们想要让它快速移动到这一行的末尾,我们按键盘上的end键

想要回到开头,就按home键

“ * ”查找

如果你想要查找,比如说这里有一个main,你想要查找下一个main怎么办?

把光标main的m字母上,按一下shift+8,即“*”号(用于查找),光标就可以跳到下一个main了

可以发现,光标调到下一个main的同时,它还用其他颜色标注出其他main的位置。

底行模式

最后一个是底行模式,注意,一定是从命令模式才能切换到底行模式。

怎么从命令模式进入底行模式呢?

有两种方式:

冒号进入底行模式

第一种是用“:”一个冒号来进入底行模式。

当底部出现一个冒号时表示已经在底行模式。

进入冒号底行模式能干什么呢?

w+回车 q+回车 wq+回车 wq!+回车

处于这个模式下,我们输入w+回车就是保存,q+回车是退出,wq+回车就是保存并退出(shift+zz也是保存退出)。有时候在可以强制保存退出,即wq!+回车。

已写入write即保存。

q其实是quit退出(电脑程序)的意思

可以输入vim hello.c再进入

冒号底行模式下直接输入数字

在底行模式下,直接输入数字能直接跳到第几行,比如说你想跳到第30行,那就调出底行模式,但是输入30,

按回车即跳转到第30行

斜杠进入底行模式

第二种进入底行模式的方式是用“/”

用这种方式进入底行模式的话能干什么呢?

/ 关键字

这种主要用于查找的,比如我们现在要查找“printf”,我们就输入“/printf”

回车后,它就自动跳转到有printf的地方

n查找下一个

这个时候按一下n就是next查找下一个

nohl去掉高亮

因为我们查找printf,因此vim给我们把所有的printf全用高亮的颜色标注出来了,如果停止查找后它不会把这些标注的颜色去掉,如果你有强迫症,可以在“:”形式的底行模式下输入“nohl”,h就是high高的意思,l 就是light亮的意思,no high light就是不要高亮的意思。

当我们这样输入后,高亮标注就没有了

set nonu关闭行号

我们想要复制代码的时候会把行号也选进去了,怎么才能不把这些行号复制进去呢?

在冒号底层模式下输入“set nonu”就是set no number设置没有标号的意思,当我们这样输入后,回车就发现左侧的这一整列行号全不见了

这样等你下一次关掉之后还是有行号的。

set nu调出行号

如果你想再次调出这些行号,可以输入“set nu”即set number就是设置编号的意思。

一般只是我们临时想要复制代码或者替换的时候需要关闭行号。

%s/old/new将old替换成new

如果你想替换的话,比如你想把main替换成xx,可以在冒号底行模式下,输入“%s/main/xx/”

回车

就全变成xx了

我们输入的这行命令的意思就是将mian改成xx

以上就是vim编辑器的三种模式,

注意:

Esc键退出编辑器的某种模式

以上命令一定要熟悉掌握!

如有问题可评论区或者私信留言,如果想要进交流群请私信! 

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

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

相关文章

Java同时使用@RequestBody和@RequestParam传参在postman中执行请求报错:Unsupported Media Type

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

快速体验 Spring Cloud Alibaba AI

快速体验 Spring Cloud Alibaba AI Spring AI 旨在简化包含人工智能相关功能的应用程序的开发,避免不必要的复杂性。 Spring AI 的核心是提供抽象,作为开发 AI 应用程序的基础。这些抽象有多种实现方式,只需极少的代码改动即可轻松实现各个…

【QT学习】11.TCP协议

一。【window为例】TCP协议的解释(记忆方法) 物理结构(自己理解) 1.服务器端 服务器端: 首先使用套接字函数创建 套接字 (Socket),并使用 绑定 函数绑定到本地地址&#xf…

MobileNetV4 论文学习

论文地址:https://arxiv.org/abs/2404.10518 代码地址:https://github.com/tensorflow/models/blob/master/official/vision/modeling/backbones/mobilenet.py 解决了什么问题? 边端设备的高效神经网络不仅能带来实时交互的体验&#xff0c…

STL复习

vector STL详解及常见面试题_stl常见面试题-CSDN博客 C vector中resize()和reserve()区别_c vector resize和reserve区别-CSDN博客 释放vectro内存: map释放内存 deque: C STL deque 容器底层实现原理(深度剖析) - 知乎 (zhihu.…

python项目入门新手攻略

最近工作需要接手了代码量比较大的python开发的项目,平时写python不多,记录一下如何熟悉项目。 分析调用流程-pycallgraph 因为代码量比较大,所以希望通过工具生成代码调用流程,因此用到了pycallgraph。 pycallgraph&#xff0…

绿色低碳深入业务全生命周期 顺丰同城发布2023ESG报告

近年来,作为一种国际公认的可持续发展理念,强调生态环境保护、履行社会责任、提高治理水平的ESG成为衡量长期投资价值的重要维度之一。今年恰逢联合国契约组织提出ESG概念20周年,“ESG”从首次进入公众视野至今,现在已成为各国商业…

基于SpringBoot的“在线BLOG网”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“在线BLOG网”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 在线BLOG网结构功能图 管理员登录功能界面 用户信息…

SQL提升

1. SQL TOP 子句 TOP 子句用于规定要返回的记录的数目。 对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。 **注释:**并非所有的数据库系统都支持 TOP 子句。 1.1 SQL TOP 语法 SQL Server 的语法: SELECT TOP number|percent c…

springboot 集成 flowable

随着企业对于业务流程管理需求的增加,流程引擎在企业信息化建设中的作用越来越重要。Flowable是一个开源的轻量级业务流程管理(BPM)和工作流引擎,它支持BPMN 2.0标准。 Flowable的一些特点: 安装集成:Flow…

OpenHarmony 实战开发——自测试执行框架

OpenHarmony为开发者提供了一套全面的开发自测试框架OHA-developer_test,开发者可根据测试需求开发相关测试用例,开发阶段提前发现缺陷,大幅提高代码质量。 本文从基础环境构建,用例开发,编译以及执行等方面介绍OpenH…

22 重构系统升级-实现不停服的数据迁移和用户切量

专栏的前 21 讲,从读、写以及扣减的角度介绍了三种特点各异的微服务的构建技巧,最后从微服务的共性问题出发,介绍了这些共性问题的应对技巧。 在实际工作中,你就可以参考本专栏介绍的技巧构建新的微服务,架构一个具备…