Linux之vim的使用详细解析

个人主页:点我进入主页

专栏分类:C语言初阶  C语言进阶  数据结构初阶    Linux    C++初阶    算法

欢迎大家点赞,评论,收藏。

一起努力,一起奔赴大厂

目录

一.vim简介

二.vim的基本概念

 三.vim的基本操作

3.1准备

3.2光标在普通模式和插入模式中的移动

3.3普通模式

3.3.1复制粘贴

3.3.2剪切粘贴

3.3.3多行复制

3.3.4光标的移动

3.3.5撤销和撤销上一次撤销

3.3.6批量注释和批量取消注释

3.4底行模式

3.4.1退出保存

3.4.2强制执行

3.4.3多窗口打开文本

四.vim一键配置

一.vim简介

        vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、windows。

二.vim的基本概念

        vim包含很多种模式,但是最重要的是底行模式,普通模式,插入模式,普通模式是我们控制光标对字符的删除以及切换到我们的底行模式和插入模式,底行模式是进行文本的保存以及一些操作,插入模式是我们对文本进行修改底行模式和插入模式我们都可以按esc进行返回普通模式,普通模式中我们想进入插入模式我们需要按i才可以进入,我们普通模式想进入底行模式需要输入:才能进入,我们可以画图为:

其中底行模式和插入模式不可以进行直接互换。

 三.vim的基本操作

3.1准备

        在进行vim的基本操作前我们需要先下载vim,我们输入下面的指令进行vim的下载

sudo yum install -y vim

下载完成后我们创建一个文件然后使用vim打开,具体操作可以参考下面的指令第一行是创建文本,第二行是使用vim进行打开

>>test.c
vim test.c

输入完成后我们可以看到出现了我们的vim编译器

由于我是配置完成的vim,所以下显示的可能和大家的有些不同。此时我们就在我们的普通模式,我们输入i然后进行对文本的初始编写。

1 #include<stdio.h>2 3 int main()4 {5     printf("Hello Linux\n");6     return 0;7 }    

我们此时可以看到:

3.2光标在普通模式和插入模式中的移动

        在普通模式和插入模式中我们想和以前一样使用鼠标是不可能的,这时候需要我们的键盘出手了,在普通模式中我们有两种方法进行光标的移动,一种是我们的上下左右移动键,第二种就是我们的

HJKL

这四个键,其中H是向左移动一个字符,L是向右移动一格字符,J是向下移动一个字符,K是向上移动一个字符。例如我们的光标在第7行的}哪里我们输入K可以看到:

插入模式中我们需要通过上下左右键进行移动,不能通过HJKL进行移动。

3.3普通模式

3.3.1复制粘贴

        在这里复制粘贴包括两种复制粘贴一种是复制一行然后粘贴一种是复制n行然后粘贴,我们先说第一种复制一行然后粘贴,我们在普通模式下输入

yy

这时候我们光标在的那一行就被复制了我们再输入

p

就会在下一行进行复制

接下来是复制n行然后复制,我们先输入n的值然后输入yy例如我们想复制3行,我们把光标移动到想复制的位置,然后输入

3yy

我们再输入

p

 

3.3.2剪切粘贴

        同样我们的剪切粘贴也分为两种一种是剪切一行然后复制一行,另一种是剪切n行然后复制n行,我们先看第一种我们把光标移动到想要剪切的位置输入

dd

我们再输入

p

我们再看另一种剪切n行然后粘贴例如我们想剪切3行,我们输入

3dd

然后输入

p

3.3.3多行复制

        我们的复制也可以进行多行复制例如我们想复制10000次第8行我们先复制第8行然后输入

10000p

3.3.4光标的移动

        在上面我们说了光标的上下左右移动如果我我们想将光标移动到开始位置呢?我们可以输入

gg

如果我们想让光标移动到结尾位置我们可以输入(必须大写)

G

如果我们想让光标移动到n位置,例如我们想让光标移动到5000的位置我们输入

5000gg

我们还可以让光标在一行中进行移动,移动到这一行的开始和结尾,例如我们想移动到这一行的结尾我们输入

$

我们想移动到这一行的开始我们输入

^

我们还有逐个单词的移动例如我们想向后移动一个单词,我们输入

w

向前移动一个单词,我们输入

3.3.5撤销和撤销上一次撤销

        我们有时候会遇到这种情况,我们不小心多写一段或者少些一段内容,或者不小心删除一段内容,这时候我们需要用到我们的撤销功能,撤销的指令就是

u

例如我们不小心多复制了10000行如下:

这时候我们输入u就可以把那1000行进行撤销

假如我们不小心多撤销了例如:

我们就需要对撤销进行撤销,这时候我们需要输入指令

ctrl r

3.3.6批量注释和批量取消注释

        我们写代码时经常会遇到需要注释的地方,我们应该怎样批量注释呢?例如我们想将500行到510行进行注释,我们先将光标移动到500行

我们先输入

ctrl v

然后进行移动进行选中(HJKL)

然后输入

I

然后输入

//

然后输入两次esc

这样我们的批量注释就完成了。

对于我们的批量取消注释,我们先输入

ctrl v

然后进行选中

然后输入、

d

这样批量取消数组就完成了。

3.4底行模式

3.4.1退出保存

        我们先进入底行模式,也就是先进入普通模式然后输入:就会进入到我们的底行模式

我们输入

wq

就可以完成保存退出。

3.4.2强制执行

        有时候我们会遇到不能执行的指令,例如某一个文本我们不能wq进行保存退出我们就可以输入

!wq

完成强制保存退出。
利用!我们还可以完成一些操作,即使不退出vim我们也可以执行指令

我们现在在底行模式中我们想创建一个test2.c的文件我们输入

! touch test2.c

我们退出来就可以看到

3.4.3多窗口打开文本

        我们想要打开多个文本,例如我们想将test.c和test2.c同时打开,我们先用vim打开test.c

然后我们进入底行模式输入

vs test2.c

此时的光标在哪我们就是控制哪一个文本,这样我们就可以完成多文本的编写,我们关闭文本就是关闭此时的文本,我们看下边

此时对test2.c进行编写我们想关闭test2.c在底行模式中输入

wq

我们重新打开,如果我们想进行编写test.c但是光标在test2.c我们输入

ctrl w

四.vim一键配置

        注意这个配置需要Centos7,并且必须不能在root账号中进行,我们直接输入指令

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

卸载方法是输入指令

bash ~/.VimForCpp/uninstall.sh

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

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

相关文章

STL - B树

1、常见的搜索结构 种类数据格式时间复杂度顺序查找无要求O(N&#xff09;二分查找有序O( )二叉搜索树无要求O(N)二叉平衡树(AVL树和红黑树)无要求O( )哈希无要求O(1) 以上结构适合用于数据量相对不是很大&#xff0c;能够一次性存放在内存中&#xff0c;进行数据查找的场景…

图像的压缩感知的MATLAB实现(第3种方案)

前面介绍了两种不同的压缩感知实现&#xff1a; 图像压缩感知的MATLAB实现&#xff08;OMP&#xff09; 压缩感知的图像仿真&#xff08;MATLAB源代码&#xff09; 上述两种方法还存在着“速度慢、精度低”等不足。 本篇介绍一种新的方法。 压缩感知&#xff08;Compressed S…

macOS系统下载IDEA的操作流程

第一步 进入官网 Download IntelliJ IDEA – The Leading Java and Kotlin IDE 第二步 根据mac的芯片选择版本下载 芯片的查看位置是【设置】-【通用】-【关于本机】-第二个&#xff0c;我的是Apple芯片&#xff0c;选Apple Silicon -- 第三步 右上角下载处打开安装包&…

汇编语言与接口技术实践——秒表

1. 设计要求 基于 51 开发板,利用键盘作为按键输入,将数码管作为显示输出,实现电子秒表。 功能要求: (1)计时精度达到百分之一秒; (2)能按键记录下5次时间并通过按键回看 (3)设置时间,实现倒计时,时间到,数码管闪烁 10 次,并激发蜂鸣器,可通过按键解除。 2. 设计思…

第十三章 Linux——备份与恢复

第十三章 Linux——备份与恢复 基本介绍安装dump和restore使用dump完成备份dump语法说明dump应用案例1dump应用案例2dump-w查看备份时间文件备份文件或者目录备注 使用restore基本语法基本介绍restore基本语法应用案例1应用案例2应用案例3应用案例4 基本介绍 实体机无法做快照…

SpringBoot:数据访问-整合 spring-boot-starter-data-jpa

点击查看数据访问demo&#xff1a;LearnSpringBoot06DataJPA Spring Data JPA - Reference 文档 简介 Spring Data的JPA模块包含一个允许定义存储库bean的自定义名称空间。它还包含JPA特有的某些特性和元素属性。通常&#xff0c;可以使用repositories元素来设置JPA存储库: 点…

学习使用在mysql中查询指定字段字符串包含多个字符串的方法

学习使用在mysql中查询指定字段字符串包含多个字符串的方法 使用LIKE关键字使用REGEXP关键字使用FIND_IN_SET函数使用INSTR函数和AND关键字 使用LIKE关键字 SELECT * FROM table_name WHERE column_name LIKE %string1% AND column_name LIKE %string2%;使用LIKE关键字&#x…

异常统一处理:Exception(兜底异常)

一、引言 本篇内容是“异常统一处理”系列文章的重要组成部分&#xff0c;主要聚焦于对 Exception&#xff08;兜底异常&#xff09; 的原理解析与异常处理机制&#xff0c;并给出测试案例。 关于 全局异常统一处理 的原理和完整实现逻辑&#xff0c;请参考文章&#xff1a; 《…

yolov8学习笔记(二)模型训练

目录 yolov8的模型训练 1、制作数据集&#xff08;标记数据集&#xff09; 2、模型训练&#xff08;标记数据集、参数设置、跟踪模型随时间的性能变化&#xff09; 2.1、租服务器训练 2.2、加训练参数 2.3、看训练时的参数&#xff08;有条件&#xff0c;就使用TensorBoard&…

《最新出炉》系列初窥篇-Python+Playwright自动化测试-27-处理单选和多选按钮-番外篇

1.简介 前边几篇文章是宏哥自己在本地弄了一个单选和多选的demo&#xff0c;然后又找了网上相关联的例子给小伙伴或童鞋们演示了一下如何使用playwright来处理单选按钮和多选按钮进行自动化测试&#xff0c;想必大家都已经掌握的八九不离十了吧。这一篇其实也很简单&#xff1a…

JavaSE——面向对象基础(4/4)-成员变量和局部变量的区别、面向对象综合案例(电影信息系统)

目录 补充&#xff1a;成员变量和局部变量的区别 面向对象综合案例 设计一个电影类 IDEA快捷操作 设计一个电影操作类 准备电影数据 业务处理 运行结果 补充&#xff1a;成员变量和局部变量的区别 区别成员变量&#xff08;对象的属性&#xff09;局部变量类中位置不同…

Project_Euler-07 题解

Project_Euler-07 题解 题目 思路 一个线性筛解决问题&#xff0c;当然也可以用埃式筛或者标准的暴力破解&#xff0c;这里选用最优秀的方式&#xff0c;顺便复习一下线性筛的内容&#xff1a; #include<stdio.h> #include<stdlib.h> #include<math.h> #in…

spring源码概念解析-spring生命周期

1.Spring生命周期 BeanFactory的⽣命周期 ApplicationContext的⽣命周期 初始化的过程都是⽐较⻓&#xff0c;我们可以分类来对其进⾏解析&#xff1a; Bean⾃身的⽅法&#xff1a;如调⽤ Bean 构造函数实例化 Bean&#xff0c;调⽤ Setter 设置 Bean 的属性值以及通 过的 in…

matlab新能源汽车三自由度操纵稳定性分析及优化

1、内容简介 略 可以交流、咨询、答疑 55-新能源汽车三自由度操纵稳定性分析及优化 2、内容说明 略 摘 要 电动化是节能减排、寻求替代能源的最佳途径&#xff0c;已成为行业共识&#xff0c;论文基于江西科技学院桑塔纳轿车油改气项目&#xff0c;在拆除发动机、变速…

Unity(第六部)向量的理解和算法

标量:只有大小的量。185 888 999 &#xff08;类似坐标&#xff09; 向量:既有大小&#xff0c;也有方向。&#xff08;类似以个体为主体的方向&#xff0c;前方一百米&#xff09; 向量的模:向量的大小。&#xff08;类似以个体为主体的方向&#xff0c;前方一百米、只取一百米…

【Crypto | CTF】BugKu 简单的RSA

天命&#xff1a;这题也不算简单了&#xff0c;要反编译&#xff0c;要灵活一点 首先收到pyc文件&#xff0c;拿去反编译出来&#xff0c;可以用在线反编译&#xff0c;也可以用工具反编译 在线&#xff1a;python反编译 - 在线工具 工具&#xff1a;https://download.csdn.n…

基于Java的传统工艺品销售系统的设计与实现

网上购物尚未流行前需要购买传统工艺品的人们都是到遍布于大街小巷的商场商店中进行挑选购买&#xff0c;除非抱有非常明确的目标&#xff0c;否则是很难在短时间内挑选购买到所需传统工艺品的。网上购物在国内的兴起则彻底颠覆了传统的线下购物模式&#xff0c;线下实体商场也…

Git命令操作

什么是Git&#xff1f; Git是⼀个免费的&#xff0c;开源的分布式版本控制软件系统 git区域 存储区域&#xff1a;Git软件⽤于存储资源得区域。⼀般指得就是.git⽂件夹 ⼯作区域&#xff1a;Git软件对外提供资源得区域&#xff0c;此区域可⼈⼯对资源进⾏处理。 暂存区&am…

中海油、中石化、中石油校招历年真题和题库

中海油、中石化、中石油是中国领先的石油和天然气公司&#xff0c;拥有雄厚的实力和丰富的资源&#xff0c;是许多求职者梦寐以求的就业机会。为了帮助应聘者更好地备战这三家公司的校园招聘&#xff0c;我特别整理了三套精心准备的校招试题资料&#xff0c;涵盖了各个领域的知…

【计算机网络】1.4 接入网和物理媒体

1.4 接入网和物理媒体 问题&#xff1a;怎样将端系统和边缘路由器连接&#xff1f; 答&#xff1a;有线方式&#xff08;住宅接入网络、单位接入网络等&#xff09;或无线方式&#xff08;无线接入网络&#xff09;。 有线接入方式 光纤同轴混合网是基于已有的有线电视网开发的…