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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Kafka:kafka的主从模式和故障切换 ②

一、Kafka整体架构图 二、Kafka原题回答 Kafka集群有主从模式吗&#xff1f; Kafka集群实际上并没有严格意义上的主从模式。Kafka的设计是基于分布式的&#xff0c;每个Topic都会切分为多个Partition&#xff0c;每个Partition都有一个Leader和多个Follower。 所有的读写操作…

计算机网络面经-TCP的拥塞控制

写在前边 前边我们分享了网络分层协议、TCP 三次握手、TCP 四次分手。今天我们继续深入分享一下 TCP 中的拥塞控制。 对于 TCP 的拥塞控制,里边设计到很多细节,平平无奇的羊希望通过这一节能够将这部分内容串通起来,能够让你更深刻的记忆这部分内容。 思维导图 1、什么…

AIGC专栏9——Scalable Diffusion Models with Transformers (DiT)结构解析

AIGC专栏9——Scalable Diffusion Models with Transformers &#xff08;DiT&#xff09;结构解析 学习前言源码下载地址网络构建一、什么是Diffusion Transformer (DiT)二、DiT的组成三、生成流程1、采样流程a、生成初始噪声b、对噪声进行N次采样c、单次采样解析I、预测噪声I…

Spring的另一大的特征:AOP

目录 AOP &#xff08;Aspect Oriented Programming&#xff09;AOP 入门案例&#xff08;注解版&#xff09;AOP 工作流程——代理AOP切入点表达式AOP 通知类型AOP通知获取数据获取切入点方法的参数获取切入点方法返回值获取切入点方法运行异常信息 百度网盘分享链接输入密码数…

【Linux基础】Linux自动化构建工具make/makefile

背景 会不会写makefile&#xff0c;从一个侧面说明了一个人是否具备完成大型工程的能力一个工程中的源文件不计数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;makefile定义了一系列的规则来指定&#xff0c;哪些文件需要先编译&#xff0c;哪些文件需要后…

性格正直的人适合什么职业?

有信仰&#xff0c;有责任&#xff0c;有骨气&#xff0c;有尊严&#xff0c;这应该是大多数人对正直的人的理解&#xff0c;他们的心中有信仰&#xff0c;肩上有责任&#xff0c;灵魂有骨气&#xff0c;头上有尊严&#xff0c;不管在什么时候都能够坚守道德准则&#xff0c;不…

【文生视频】Diffusion Transformer:OpenAI Sora 原理、Stable Diffusion 3 同源技术

文生视频 Diffusion Transformer&#xff1a;Sora 核心架构、Stable Diffusion 3 同源技术 提出背景变换器的引入Diffusion Transformer (DiT)架构Diffusion Transformer (DiT)总结 OpenAI Sora 设计思路阶段1: 数据准备和预处理阶段2: 架构设计阶段3: 输入数据的结构化阶段4: …

蓝桥杯算法赛 第 6 场 小白入门赛 解题报告 | 珂学家 | 简单场 + 元宵节日快乐

前言 整体评价 因为适逢元宵节&#xff0c;所以这场以娱乐为主。 A. 元宵节快乐 题型: 签到 节日快乐&#xff0c;出题人也说出来自己的心愿, 祝大家AK快乐! import java.util.Scanner;public class Main {public static void main(String[] args) {System.out.println(&qu…

信息抽取(UIE):使用自然语言处理技术提升证券投资决策效率

一、引言 在当今快速变化的证券市场中&#xff0c;信息的价值不言而喻。作为一名资深项目经理&#xff0c;我曾领导一个关键项目&#xff0c;旨在通过先进的信息抽取技术&#xff0c;从海量的文本数据中提取关键事件&#xff0c;如企业并购、新产品发布以及政策环境的变动。这些…

学会字符转换

字符转换 题目描述&#xff1a;解法思路&#xff1a;解法代码&#xff1a;运行结果&#xff1a; 题目描述&#xff1a; 输入⼀一个字符串&#xff0c;将字符串中大写字母全部转为小写字母&#xff0c;小写字母转成大写字母&#xff0c;其他字符保持不变。注&#xff1a;字符串…

typescript使用解构传参

看下面这个函数 interface Student {id: number;name: string;class: string;sex: string;}function matriculation(student: Student) {//...}我们要调用它,就需要传递一个实现了Student约束的对象进去 interface Student {id: number;name: string;class: string;sex: string…

音视频数字化(数字与模拟-电视)

上一篇文章【音视频数字化(数字与模拟-音频广播)】谈了音频的广播,这次我们聊电视系统,这是音频+视频的采集、传输、接收系统,相对比较复杂。 音频系统的广播是将声音转为电信号,再调制后发射出去,利用“共振”原理,收音机接收后解调,将音频信号还原再推动扬声器,我…

Liunx--nginx负载均衡--前后端分离项目部署

一.nginx简介 Nginx是一个高性能的HTTP和反向代理服务器&#xff0c;它以其轻量级、占用资源少、并发能力强而广受欢迎。 详细介绍 开发背景与特点&#xff1a;Nginx由俄罗斯人Igor Sysoev开发&#xff0c;它是一个自由的、开源的软件。Nginx设计上注重性能和效率&#xff0c;能…

数据库安全性与完整性设计

文章标签集合[数据库安全,数据敏感,通信安全,MD5,盐加密] 1 系统设计 1.1设计目标 &#xff08;1&#xff09;确定系统中需要保护的敏感数据和通信内容&#xff1b; &#xff08;2&#xff09;设计合适的签名、加密和解密算法&#xff1b; &#xff08;3&#xff09;实现…

docker-compose 搭建laravel环境

laravel环境包含nginx,mysql,php7.4,redis 一、安装好docker后pull镜像 1.nginx镜像 docker pull nginx:latest单独启动容器 docker run --name nginx -p 80:80 -d nginx 2.php镜像 docker pull php:7.4-fpm3.mysql镜像 docker pull mysql:5.74.redis镜像 docker pull r…

Mysql5.7主从复制搭建

注意不适用Mysql8 Docker搭建Mysql主从复制 docker run -p 3307:3306 --name mysql-master \ -v /usr/local/develop/mysql-master/log:/var/log/mysql \ -v /usr/local/develop/mysql-master/data:/var/lib/mysql \ -v /usr/local/develop/mysql-master/conf:/etc/mysql/con…

基于相位的运动放大:如何检测和放大难以察觉的运动(02/2)

目录 一、说明二、算法三、准备处理四、高斯核五、带通滤波器六、复杂的可操纵金字塔七、最终预处理步骤八、执行处理九、金字塔的倒塌十、可视化结果十一、结论 一、说明 日常物体会产生人眼无法察觉的微妙运动。在视频中&#xff0c;这些运动的幅度小于一个像素&#xff0c;…

记录一些mac电脑重装mysql和pgsql的坑

为什么要重装,是想在mac电脑 创建data目录…同事误操作,导致电脑重启不了.然后重装系统后,.就连不上数据库了.mysql和pgsql两个都连不上.网上也查了很多资料.实在不行,.就重装了… 重装mysql. 1.官网下载 https://www.mysql.com/downloads/ 滑到最下面 选择 选择对应的芯片版本…

密码学及其应用(应用篇15)——0/1背包问题

1 问题背景 背包问题是一个经典的优化问题&#xff0c;在计算机科学和运筹学中有着广泛的应用。具体到你提到的这个问题&#xff0c;它是背包问题中的一个特例&#xff0c;通常被称为0/1背包问题。这里&#xff0c;我们有一系列的正整数 &#xff0c;以及一个正整数&#xff0c…

【Linux】--- 详解Linux软件包管理器yum和编辑器vim

目录 一、Linux软件包管理器 - yum1.1 yum和软件包是什么1.2 Linux系统(Centos)的生态1.3 yum相关操作1.4 yum本地配置 二、Linux编辑器 - vim使用2.1 vim的基本概念2.2 vim命令模式命令集2.3 vim末行模式命令集2.4 关于vim的几个相关问题 一、Linux软件包管理器 - yum 1.1 yu…