【Linux】第七站:vim的使用以及配置

news2024/9/28 3:23:13

文章目录

  • 一、vim
    • 1.vim的介绍
    • 2.vim基本使用
    • 3.vim的命令模式常用命令
    • 4.底行模式
  • 二、vim的配置

一、vim

1.vim的介绍

vim编辑器,用来文本编写,可以写代码

它是一个多模式的编辑器

它有很多的模,不过我们暂时先只考虑这三种模式

  • 命令模式
  • 插入模式
  • 底行模式

image-20231030183350245

2.vim基本使用

我们先创建一个test.c文件

然后我们直接

vim test.c

然后,我们会进入到如下的界面,我们会发现,我们进入以后什么无论按什么都是没有任何反应的,这是因为我们刚进入的时候就是默认模式,也就是命令模式

image-20231030182908553

命令模式(默认模式):用户所有的输入都会被当作命令,一般不会给你作为文本输入

image-20231030183425823

我们先看能不能直接写上代码,所以我们需要进入插入模式,只需要进入vim后直接按i即可进入

然后我们可以简单的写一个代码

image-20231030183829439

然后我们现在需要退出vim

于是,我们可以先无脑ESC按键,然后按shift + ; ,即冒号。这样我们就切换到了底行模式,然后wq即可,

这里的w就是只保存不退出,q就是只退出不保存。wq就是保存并退出,如果加上!那么代表强制。

如果我们从底行模式转回命令模式,我们只需要无脑ESC即可

如下就是我们的三个模式之间的转换,对于插入模式和底行模式之间,我们不考虑它的直接切换

image-20231030184406446

3.vim的命令模式常用命令

gg :定位光标到最开始的行

shift + g(即G) :定位光标到最结尾的行

n+shift + g (即nG) :定位光标到第n行,注意要使用键盘正上方的数字键

(n)yy :复制光标所在行(n行,不输入n则默认为1)

(n)p : 粘贴(n重复行)到光标所在行的下一行,不写n则默认为1

u : 撤销

ctrl + r : 撤销之前的撤销

(n)dd :剪切、删除n行

shift + $ : 定位光标到当前行结尾

shift + - : 定位光标当前行开始

w,b : 光标按照单词进行行内跨行进行移动

w是向后移动,而b是向前移动

也可以是n w(b),即按照单词进行移动n次

h ,j ,k, l : 分别对应左、下、上、右

推荐使用这四个键,因为有一些键盘没有上下左右

shift + ~ : 大小写转换

(n)r : 对光标字符开始的n个字符进行批量化替换,替换为新输入的字符,n默认为1

shift + R : 替换模式,对内容进行整体替换(第四种模式,退回命令模式直接ESC)

(n)x : 对光标字符之后的字符进行删除

4.底行模式

如果我们想要对比两个test.c文件

我们可以在底行模式下使用vs xxxx对应的文件名即可

这里需要注意的是使用vim可以打开一个我们还没有创建的文件,如果我们最后是直接q离开的话,那么这个文件将不会保存,如果保存了,那么最终将生成这个文件

如下所示

image-20231030195640907

当我们想要切换的时候,我需要按ctrl + w +w ,也就是ctrl加两次w就可以切换窗口了

底行中,vs可以打开多个文件编辑窗口

ctrl ww : 窗口光标切换

光标在哪一个窗口里面,就对哪一个窗口进行操作

其次在vim的底行模式中,我们也可以编译代码,运行代码

只需要在我们正常的使用前加上一个!即可

image-20231030204301315

还有一点是在底行也支持搜索,前面加上/,然后需要搜索的字符串即可

image-20231030204434340

在底行中也可调出行号,使用set nu命令即可

image-20231030204555934

去掉行号的命令是set nonu

image-20231030204651492

二、vim的配置

当我们用vim写代码的时候,是非常难受的,因为都没有代码提示这些的

所以我们需要对vim做出一定的配置

我们先回到家目录下面,然后输入

ls -al

先查看是否有.vimrc这个隐藏文件,如果没有我们可以创建一个

image-20231030205146170

然后我们直接用vim进入这个文件

比如说如果我们要配置要带上行号

我们就可以使用

set nu

然后保存退出即可,这时候,我们在进入vim去看其他文件的时候就默认有行号了

image-20231030205535570

image-20231030205547665

那么配置都在哪里有呢?都有哪些配置呢?

其实直接百度就可以了

image-20231030210107916

然后我们可以根据自己的需要进行配置了

注意

一个用户一个vim配置,不会互相影响

一般不建议给root配置,只需要给普通用户配置即可

不过让我们自己去配置还是比较麻烦的,所以我们可以一键配置,直接在普通用户下复制粘贴下面的即可

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

下载完成之后,我们的vim就变得很舒服了

但是我们这里会多出来一个文件,我们可以直接将他给隐藏掉

image-20231030211231635

image-20231030211305210

当然我们这个配置的缩进是2,如果我们想要改为4的话直接修改即可

image-20231030211634050

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

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

相关文章

Java基础知识之反射机制详解

一、什么是反射机制? 反射机制是指在运行时动态地获取类的信息,并能够通过这些信息对类的对象进行操作。Java中的反射机制包括获取类信息、获取成员信息、创建对象、调用方法等操作。通过反射机制,我们可以在运行时动态地了解类的结构、属性和方法等信息,从而实现对类的动态…

JavaScript简介:探索Web开发中的魔力

目录 历史与发展 特点与优势 特点与功能 简单易学 客户端脚本语言 跨平台与兼容性 应用领域 总结 JavaScript是一种高级的、解释型的编程语言,用于在网页上实现交互和动态效果。它广泛应用于前端开发中,是构建现代Web应用的核心技术之一。JavaScrip…

宠物用品小程序

近年来,越来越多的人选择将宠物视为家庭的一员,为宠物购买各种用品成为了一项重要的消费活动。因此,宠物用品小程序应运而生,为消费者提供了一个便捷的购买平台,同时也为宠物带来了更加幸福的生活。 登录乔拓云平台进入…

【Java 进阶篇】Java登录案例详解

登录是Web应用程序中常见的功能,它允许用户提供凭证(通常是用户名和密码)以验证其身份。本文将详细介绍如何使用Java创建一个简单的登录功能,并解释登录的工作原理。我们将覆盖以下内容: 登录的基本概念创建一个简单的…

STM32:使用蓝牙模块

一、蓝牙概要 蓝牙是一种常见的无线通信协议,通常用于短距离通信。蓝牙分为经典蓝牙和低功耗蓝牙(BLE)。经典蓝牙通常用于需要持续传输数据的设备,比如蓝牙耳机等。低功耗蓝牙通常用于只需要间歇性传输数据的设备,比如运动手环。 蓝牙…

C语言——判断 101-200 之间有多少个素数,并输出所有素数

完整代码&#xff1a; // 判断 101-200 之间有多少个素数&#xff0c;并输出所有素数 #include<stdio.h>//判断一个数n是否为素数 int isPrimeNumber(int n){//1不是素数if (n1){return 0;}for (int i 2; i <(n/2); i){//当有n能被整除时&#xff0c;不是素数if ((n…

Jenkins项目部署

使用jenkins部署项目 简易版使用jenkins部署项目 将war包部署到tomcat中 将已有的war包部署到tomcat中(jenkins与tomcat在同一台主机) 点击Jenkins主页的新建任务 输入任务名称 选择构建一个自由风格的软件项目后点击确定 在构建内添加构建步骤&#xff0c;选择执行shell 输入…

RT-Thread内核——内核基础(上)

1、内核简介 内核是操作系统的核心&#xff0c;是操作系统最基础也是最重要的部分&#xff0c;主要负责系统的线程、线程间通信、系统时钟、中断以及内存等。其架构图如下&#xff1a; 2、线程调度 线程是RT-Thread操作系统中最小的调度单位&#xff0c;线程调度算法的基于…

线性代数 第二章 矩阵

一、概念 mxn个数排成的m行n列的表格 二、运算法则 三、初等变换 &#xff08;1&#xff09;用非零常数k乘矩阵的某一行&#xff08;列&#xff09;&#xff1b; &#xff08;2&#xff09;互换矩阵某两行&#xff08;列&#xff09;的位置&#xff1b; &#xff08;3&am…

服务端测试开发必备技能:Mock测试

什么是mock测试 Mock 测试就是在测试活动中&#xff0c;对于某些不容易构造或者不容易获取的数据/场景&#xff0c;用一个Mock对象来创建以便测试的测试方法。 Mock测试常见场景 无法控制第三方系统接口的返回&#xff0c;返回的数据不满足要求依赖的接口还未开发完成&#…

接入百度地图api

注册百度账号&#xff0c;进入百度地图百度地图开放平台 | 百度地图API SDK | 地图开发 点击开发文档&#xff0c;比如js开发选择javascript API&#xff0c;然后跟着向下走&#xff0c;官方文档挺详细 先获取账号与密钥 自用Referer设置 * 即可 复制AK密钥导入自己的html文件即…

MVCC(多版本并发控制)

一、什么是MVCC MVCC是为了解决数据库在不加锁的前提下提升并发性和读取效率的一种思想 数据库有已下几种并发情况 读-读&#xff1a;不会产生并发问题读-写&#xff1a;发生隔离性问题&#xff0c;可能导致脏读、幻读、不可重复度写-写&#xff1a;可能存在数据丢失 为了防…

京东科技埋点数据治理和平台建设实践 | 京东云技术团队

导读 本文核心内容聚焦为什么要埋点治理、埋点治理的方法论和实践、奇点一站式埋点管理平台的建设和创新功能。读者可以从全局角度深入了解埋点、埋点治理的整体思路和实践方法&#xff0c;落地的埋点工具和创新功能都有较高的实用参考价值。遵循埋点治理的方法论&#xff0c;…

sd模型测试之又纯又欲的Copax Anime XL动漫大模型

除了各种美女图外&#xff0c;AI绘画大模型中&#xff0c;最受欢迎的是动漫。 动漫又分好几种&#xff0c;幼儿向、热血向、成人向等。 之前我推荐了几个风格不同的动漫大模型&#xff0c;今天推荐一个成人向的动漫大模型&#xff1a;Copax Anime XL。 当然了&#xff0c;成…

One-to-N N-to-One: Two Advanced Backdoor Attacks Against Deep Learning Models

One-to-N & N-to-One: Two Advanced Backdoor Attacks Against Deep Learning Models----《一对N和N对一&#xff1a;针对深度学习模型的两种高级后门攻击》 1对N&#xff1a; 通过控制同一后门的不同强度触发多个后门 N对1&#xff1a; 只有当所有N个后门都满足时才会触发…

【JAVA学习笔记】54 - 集合 - Set类、HashSet类(难点)

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter14/src/com/yinhai/set_ Set类 一、基本介绍 1.无序(添加和取出的顺序不一致) ,没有索引[后面演示] 2.不允许重复元素&#xff0c;所以最多包含一个null 3.JDK API中Set接口的实现类有: …

SQL BETWEEN运算符

SQL BETWEEN 运算符 BETWEEN运算符用于选取介于两个值之间的数据范围内的值。 BETWEEN运算符选择给定范围内的值。值可以是数字&#xff0c;文本或日期。 BETWEEN运算符是包含性的&#xff1a;包括开始和结束值&#xff0c;且开始值需小于结束值。 SQL BETWEEN 语法 SELECT …

【蓝桥杯选拔赛真题06】C++数字评级 青少年组蓝桥杯C++选拔赛真题 STEMA比赛真题解析

目录 C/C++数字评级 一、题目要求 1、编程实现 2、输入输出 二、算法分析 <

gma 2 教程(三)坐标参考系统:2.基准面/椭球体

安装 gma&#xff1a;pip install gma 地球是一个近似于椭球体的三维物体&#xff0c;而地球上的各种测量和计算都需要一个基准面来进行。基准面是一个虚拟的平面&#xff0c;用于测量和计算地球上的各种物理量。在地球科学中&#xff0c;基准面通常是一个参考椭球体&#xff0…