【Linux】-vim的介绍,教你手把手使用vim

news2024/11/24 22:59:46

💖作者:小树苗渴望变成参天大树
❤️‍🩹作者宣言:认真写好每一篇博客
💨作者gitee:gitee
💞作者专栏:C语言,数据结构初阶,Linux,C++
在这里插入图片描述

如 果 你 喜 欢 作 者 的 文 章 ,就 给 作 者 点 点 关 注 吧!

文章目录

  • 前言
  • 一、Linux编辑器-vim使用
    • 1.1 ==**命令模式:**==
    • 1.2 ==**底层模式:**==
    • 1.3 ==**插入模式:**==
    • 1.4总结
  • 二、vim的配置
  • 三、补充知识
  • 四、总结


前言

今天我们来具体介绍一下vim这个工具的使用,这个工具可以更好帮助我们编写代码,他又许多常用的指令,一会都会介绍,最后再会具体的讲一些vim的配置相关的知识,接下来我们来进入正文的讲解


一、Linux编辑器-vim使用

vim是一个多模式的编辑器->文本编写->写代码,大家再之前可能听过vi,vim是vi的升级版本,他兼容vi的所有指令,对于vim,我们又许多模式,但是我i们今天重点介绍其中最常用的三种模式:命令模式,插入模式,底层模式,接下来我们先vim一个test.c文件

vim test.c

在这里插入图片描述
此时我们默认刚进来是命令模式,我们没有办法再里面进行写文本信息的,原因是:用户所有输入的东西都会呗当成命令,一般不会作为文本输入,这个时候我们就需要切换到我们的插入模式按一下键盘的 i键,此时就会出现下面的样子,就可以进行文本输入了,我们再里面随便写一个简单的C代码
在这里插入图片描述
我们写完我们的代码怎么保存退出呢?这时候按一下键盘的esc键,就可以推到我们的命令模式,然后再按一下键盘上的shift+:键盘就会进入底层模式
在这里插入图片描述
然后输入wq按回车就保存退出了
在这里插入图片描述
这样的操作大家之前应该也都使用过,大家根据这个图在来理解一下
在这里插入图片描述
接下来我将对每个模式具体讲解一下,带大家可以更好的使用vim。

1.1 命令模式:

再我们的Windows上,我们打开我们的记事本,我们可以通过鼠标来控制光标再第几行,一些复制,删除等等操作,再Linux上,这些操作都是通过命令去执行的,即使光标可以一个一个的移动,但是还是不太方便的,接下来我将讲解十几个使用的命令,方便大家去使用:

1. 按[gg]:是光标定位在文本开始的地方

在这里插入图片描述
2. 按[shift+g]:进入文本末端
在这里插入图片描述
3. 按[n+shift+g]:定位到第n行

我想直接定位到第四行,4+shift+g
在这里插入图片描述
后面会具体介绍怎么显示行号的。

4. 「yy」:复制光标所在行,[p] : 粘贴到光标的下一行
在这里插入图片描述
[n+yy]:复制光标当前行以及下面的n-1行,就是一次复制n行
在这里插入图片描述
[n+p] : 粘贴n次,将当前行复制粘贴5次
在这里插入图片描述

n默认都是为1

5. [dd] : 剪切或者是删除
剪切也带有复制的含义,如果剪切不复制就是删除的含义
在这里插入图片描述
[n+dd]:删除n行

在这里插入图片描述
6.[u] : 撤销上一次操作

在这里插入图片描述
[Ctrl+r] :将上一次撤销给恢复
意思就是把撤销的操作给撤销掉
在这里插入图片描述
先将当前行删除,在撤销,然后取消撤销

8.
按「 shift+$ 」:移动到光标所在行的“行尾”
按「shift+^」:移动到光标所在行的“行首

在这里插入图片描述

9.
按「w」:光标跳到下个字的开头
按「b」:光标跳到上个字的开头

在这里插入图片描述
遇到不是一个单词,单个字符就按照一个单词来处理了

[e]:光标跳到下个字的字尾
这个就不做具体的演示了

10. 「n+r」:替换光标所在处的字符。
可以一次替换n个字符

在这里插入图片描述
11.「shift+r」:替换光标所到之处的字符,直到按下「ESC」键为止。
在这里插入图片描述
这是一个批量化处理字符的命令

12.[shift+~]:切换大小写

在这里插入图片描述
**13.**移动光标
我们使用我们键盘上的上下左右四个方向键虽然可以,但是不建议,我们争辉使用时下面四个键:[h],[j],[k],[l],表示左下上右

原因时早期的vim出来的比键盘早,我们早期的键盘其实是这样的
在这里插入图片描述

对于命令模式我们掌握着十几个指令,就可以韩浩满足我们平时写代码的需求了,接下来末行模式

1.2 底层模式:

在命令模式我们输入的命令都是看不到的,但在末行模式中,我们也是输入指令,但是我们是可以看见的。

1.行号
列出行号:[set nu]
在这里插入图片描述
删除行号:[set nonu]
在这里插入图片描述
2.跳到文件中的某一行
在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字4,
再回车,就会跳到文章的第4行
在这里插入图片描述
3.查找字符
「/关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按回车会往后寻找到您要的关键字为止。
「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按回车会往前寻找到您要的关键字为止

在这里插入图片描述
对于着两者的区别是,?是从当前行开始查找,/是从下一行开始查找

4.保存文件和离开vim
「w」: 在冒号输入字母「w」就可以将文件保存起来离开vim
「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim。
「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。
这个就不具体演示了。

对于底层模式大家就掌握这些指令就行了,后面又补充的我在重点说,接下来简单讲讲插入模式

1.3 插入模式:

这个模式其实就是文本的编写,没啥具体的操作

按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;
按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
按「o」进入插入模式后,是插入新的一行,从行首开始输入文字

在这里插入图片描述
这是按照顺序具体给大家演示了一下。

对于上面的插入模式大家应该理解了吧

1.4总结

对于vim的三个模式大家应该明白了吧,里面又许多方便大家使用的命令,这些要孰能生巧,博主也在联系这些指令,接下来我将讲解一下vim的配置

二、vim的配置

我们为什么要进行vim的配置,因为默认的vim就好比一个纯记事本,大家如果在记事本上写代码时什么感觉,是不是特别的烦,什么提示和补全都没有,所以我们要将我们的vim配置成我们想要的效果,跟编译器那种一样,又提示,补全才是我们想要的效果

那我们怎么进行配置呢??

在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。相当于默认的配置文件,我们都共有的。
在这里插入图片描述
因为是共有的,所有不能在共有的文件下进行配置了,那影响的就不是一个用户,所谓i我们要在每个用户的主目录下创建属于自己的配置文件
在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下
在这里插入图片描述

我们在里面写一些配置内容:

设置语法高亮: syntax on
显示行号: set nu
设置缩进的空格数为4: set shiftwidth=4
在这里插入图片描述

这就是配置行号的内容,我们来看看效果

在这里插入图片描述
大家看到我们配置这个文件,现在进入vim就直接显示行号了。

其他的配置也是和上面一样的道理,我们可以在百度或者csdn进行搜索(vim的配置)
在这里插入图片描述
大家可以自己去尝试配置一下

但是配置文件对于大家来说还是有点复杂,而且耽误时间,所以我将给大家一个好的办法去进行配置
这个方法不要再root用户进行使用,我们再普通用户的家目录下进行操作就行了

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

在这里插入图片描述
出现这个界面就可以了,执行提示的命令
在这里插入图片描述

再看你目录下,就会多出许多隐藏文件,但是多了一个这样的文件
在这里插入图片描述
我们先不用管,使用mv把改成隐藏文件就行了,虽然ls里面没有什么内容,但是也不要删除。
此时我们再打开我们的test.c看看此时的vim是一个什么样的

在这里插入图片描述
此时我们vim就可以向我们的编译器写的时候一样又语法提示,如果觉得这个缩进不是想要的风格,可以进入.vimrc文件进行修改

进入.vimrc,然后使用底层模式查找字符2,将着三个修改成4
在这里插入图片描述
此时保存退出,再次执行上面要求提示的代码
在这里插入图片描述
这样就可以,对于vim的配置,博主就先分享到这里了

三、补充知识

对于上面所讲的都是单个文件,有的时候我们不可能再单个文件上操作,可能是好几个文件,同时进行操作,每次退出切换太麻烦了,所以我们通过底层模式的vs指令创建新文件或者打开已经存在的文件

在这里插入图片描述
对于两个窗口,我们根据光标所在的窗口来进行操作,这时候就涉及到光标的窗口切换,使用[CTRL+ww].

在这里插入图片描述
想把test.c的代码复制一份到test1.c,将光标先放在test.c窗口

5 yy  ctrl+ww p

在这里插入图片描述
对于多个文件的操作大家应该明白了。

四、总结

对于vim的细节我已经给大家讲解清楚了,大家下去要去多练习,怒视难理解的东西,接下来我要给大家再讲解一个工具yum,我们下篇再见
在这里插入图片描述

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

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

相关文章

一台电脑同时安装多个tomcat服务器教程,window同时安装tomcat7、tomcat8、tomcat9三个服务器教程

一台电脑同时安装多个tomcat服务器 . 介绍 A. 解释为什么有时需要同时安装多个Tomcat服务器 应用程序隔离:当你需要在同一台设备上运行多个独立的应用程序时,每个应用程序可能需要使用不同的Tomcat配置和环境。通过同时安装多个Tomcat服务器&#xff0…

车载以太网 - SomeIP - 协议用例 - Messages_02

目录 13.1、验证SomeIP-SD中订阅报文Subscribe和SubscribeAck中IPv4 Endpoint Option中ServiceID一样

【JAVA进阶】Stream流

📃个人主页:个人主页 🔥系列专栏:JAVASE基础 目录 1.Stream流的概述 2.Stream流的获取 3.Stream流的常用方法 1.Stream流的概述 什么是Stream流? 在Java 8中,得益于Lambda所带来的函数式编程&#xff0…

HNU数据结构与算法分析-作业4-图结构

1. (简答题) 【应用题】11.3 (a)画出所示图的相邻矩阵表示 (b)画出所示图的邻接表表示 (c)如果每一个指针需要4字节,每一项顶点的标号占用2字节,每一条边的权需要2字节&#xff0…

计算机体系结构存储系统

存储系统原理 两种典型的存储系统:Cache存储系统和虚拟存储系统。前者主要目的是提高存储器速度,后者有主存储器和硬盘构成,主要用于扩大存储器容量。 存储系统的访问效率 e T 1 T 1 H ( 1 − H ) T 2 T 1 f ( H , T 2 T 1 ) e\frac{T_…

魔改车钥匙实现远程控车:(4)基于compose和经典蓝牙编写一个控制APP

前言 这篇文章不出意外的话应该是魔改车钥匙系列的最后一篇了,自此我们的魔改计划除了最后的布线和安装外已经全部完成了。 不过由于布线以及安装不属于编程技术范围,且我也是第一次做,就不献丑继续写一篇文章了。 在前面的文章中&#xf…

基于torch实现模型剪枝

一、剪枝分类 所谓模型剪枝,其实是一种从神经网络中移除"不必要"权重或偏差(weigths/bias)的模型压缩技术。关于什么参数才是“不必要的”,这是一个目前依然在研究的领域。 1.1、非结构化剪枝 非结构化剪枝(…

什么是可持续能源?

随着全球经济的不断发展和人口的不断增长,能源问题越来越受到关注。传统能源已经不能满足人们对能源的需求,同时也对环境和健康带来了严重的影响。为了解决这些问题,出现了可持续能源的概念。那么,什么是可持续能源呢?…

逐渐从土里长出来的小花

从土里逐渐长出来的小花&#xff08;这是长出来后的样子&#xff0c;图片压缩了出现了重影~&#xff09; 代码在这里&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title&g…

MySQL-索引(2)

本文主要讲解MySQL-索引相关的知识点 联合索引前缀索引覆盖索引索引下推索引的优缺点什么时候适合创建索引,什么时候不适合?如何优化索引 ? 索引失效场景 ? 为什么SQL语句使用了索引,却还是慢查询 ? 使用索引有哪些注意事项 ? InnoDB引擎中的索引策略 目录 联合索引 联合…

LeetCode高频算法刷题记录6

文章目录 1. 编辑距离【困难】1.1 题目描述1.2 解题思路1.3 代码实现 2. 寻找两个正序数组的中位数【困难】2.1 题目描述2.2 解题思路2.3 代码实现 3. 合并区间【中等】3.1 题目描述3.2 解题思路3.3 代码实现 4. 爬楼梯【简单】4.1 题目描述4.2 解题思路4.3 代码实现 5. 排序链…

chatgpt赋能Python-python3_9安装numpy

Python 3.9 安装 NumPy 的完整指南 Python是一种功能强大的编程语言&#xff0c;已成为数据分析、人工智能和科学计算领域的主流语言之一。NumPy是一个Python库&#xff0c;用于执行高效的数值计算和科学计算操作。Python 3.9是Python最新版本&#xff0c;带来了许多新功能和改…

一款非常有趣的中国版本的Excalidraw作图工具drawon(桌案)

桌案工具集成了很多有趣的在线作图工具&#xff0c; 思维导图&#xff0c; 流程图&#xff0c;以及草图&#xff0c;在线ppt等功能。 而草图是基于国外有名的Excalidraw而改造而来&#xff0c;使得它更符合国人的使用习惯。 最近在 使用excalidraw时&#xff0c;发现了很多新功…

Excel | 基因名都被Excel篡改了怎么办呢!?~(附3种解决方案)

1写在前面 今天和大家分享一下在做表达矩阵处理时尝尝会遇到的一个问题&#xff0c;但又经常被忽视&#xff0c;就是Excel会修改你的基因名。&#x1f637; 无数大佬在这里都踩过坑&#xff0c;这些普遍的问题已经被写成了paper&#xff08;左右滑动&#xff09;&#xff1a;&a…

75.建立一个主体样式第一部分

我们的目标如下图所示 ● 首先建立文件夹&#xff0c;生成框架代码 ● 把页面上面的HTML元素写进去 <header><nav><div>LOGO</div><div>NAVIGATION</div></nav><div><h1>A healty meal delivered to your door, ever…

Java基础--->并发部分(2)【Java中的锁】

文章目录 synchronized和ReentrantLock的区别Java中锁的名词synchronized锁ReentrantLock锁 synchronized和ReentrantLock的区别 synchronized 和 ReentrantLock 都可以用来实现 Java 中的线程同步。它们的作用类似&#xff0c;但是在用法和特性上还是有一些区别的。 synchroni…

【2023/05/20】Visual Basic

Hello&#xff01;大家好&#xff0c;我是霜淮子&#xff0c;2023倒计时第15天。 Visual Basic是一种广泛应用于Windows操作系统的编程语言&#xff0c;它是Microsoft公司开发的一种面向对象的编程语言&#xff0c;以其简单、易学、易用的特点受到广泛欢迎。本文旨在介绍Visual…

2023年申请美国大学,需要SAT/ACT成绩吗?

受疫情影响&#xff0c;2021 和 2022 年申请美国大学时&#xff0c;许多大学都放宽了SAT/ACT门槛&#xff0c;不强行要求学生提交标化成绩。今年3月&#xff0c;理工大牛院校 MIT 率先打破了这个局面&#xff0c;宣布恢复 SAT/ACT 标化成绩要求&#xff0c;随后几个大学也陆续宣…

Java --- 云尚办公用户管理模块实现

目录 一、用户管理 1.1、数据库表 1.2、使用代码生成器生成相关代码 1.3、后端代码 1.4、前端代码 二、用户与角色功能实现 一、用户管理 1.1、数据库表 CREATE TABLE sys_user (id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT 会员id,username VARCHAR(20) NOT NU…

Java面试知识点(全)-spring面试知识点一

Java面试知识点(全) 导航&#xff1a; https://nanxiang.blog.csdn.net/article/details/130640392 注&#xff1a;随时更新 Spring原理 Spring ioc概念&#xff1a;控制权由对象本身转向容器&#xff1b;由容器根据配置文件去创建实例并创建各个实例之间的依赖关系。核心&am…