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

文章目录

  • 一、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.hqwc.cn/news/155024.html

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

相关文章

在大数对10^9 + 7取余时精度丢失

在写算法时经常遇到这种情况,比如答案是由我们得到的两个很大的数字相乘得到的。 我就有遇到一个情况: 使用1L*a*b%(Math.pow(10,9)7)会超出范围,而1L*a*b%1000000007不会超出范围 这个问题的原因是Math.pow(10,9)7的返回值是一个double类型…

Zynq UltraScale+ XCZU5EV 纯VHDL解码 IMX214 MIPI 视频,2路视频拼接输出,提供vivado工程源码和技术支持

目录 1、前言免责声明 2、我这里已有的 MIPI 编解码方案3、本 MIPI CSI2 模块性能及其优越性4、详细设计方案设计原理框图IMX214 摄像头及其配置D-PHY 模块CSI-2-RX 模块Bayer转RGB模块伽马矫正模块VDMA图像缓存Video Scaler 图像缓存DP 输出 5、vivado工程详解PL端FPGA硬件设计…

【嵌入式】HC32F07X CAN通讯配置和使用

目录 一 背景说明 二 原理分析 三 CAN通讯硬件设计 四 CAN通讯软件配置 五 CAN通讯测试 一 背景说明 使用小华(华大)的MCU HC32F07X实现 CAN 通讯配置和使用 二 原理分析 【1】CAN原理说明(参考文章《CAN通信详解》)&#x…

Linux】centos安装配置及远程连接工具的使用

【Linux】centos安装配置及远程连接工具的使用 1.使用vmware创建虚拟机,因为过程比较简单就没有截图了,根据下面步骤来就行。2.网络配置3.MobaXterm连接CentOS1.new session2.点击ssh,输入虚拟机的IP地址即可 4.进行阿里云换源1.进入2.下载wg…

一年时间如何能掌握 C++ ?

一年时间如何能掌握 C ? 建议不要把掌握c作为一个一年的目标。 C的外延太广,就是应用领域、面向对象、设计模式等等。C语法和标准库本身是有限的。 最近很多小伙伴找我,说想要一些C资料,然后我根据自己从业十年经验,…

二叉树问题——对称二叉树

摘要 101. 对称二叉树 一、对称二叉树解析 1.1 递归思路分析 首先想清楚,判断对称二叉树要比较的是哪两个节点,要比较的可不是左右节点!对于二叉树是否对称,要比较的是根节点的左子树与右子树是不是相互翻转的,理解…

3ds Max2022安装教程(最新最详细)

目录 一.简介 二.安装步骤 网盘资源见文末 一.简介 3DS Max是由Autodesk公司开发的一款专业三维建模、动画和渲染软件,广泛应用于影视、游戏、建筑和工业设计等领域。 3DS Max的主要特点和功能包括: 三维建模:3DS Max提供了各种强大的建…

关于c++unique后会打乱顺序

这为什么加上注释这三行输出就会多个4 5 吗 还是a已经发生了变化? 疑问? 解决: unique要求容器有序&#xff0c;而且执行完以后会把重复的放在后面 因为unique后可能无序所以要排序一下,代码如下 。 源代码 #include <iostream> #include <algorithm> #…

C++前缀和算法的应用:预算内的最多机器人数目

本文涉及的基础知识点 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 单调双向队列 滑动窗口 题目 你有 n 个机器人&#xff0c;给你两个下标从 0 开始的整数数组 chargeTimes 和 runningCosts &#xff0c;两者长度都为 n 。第 i 个机器…

Java进阶(List)——面试时List常见问题解读 结合源码分析

前言 List、Set、HashMap作为Java中常用的集合&#xff0c;需要深入认识其原理和特性。 本篇博客介绍常见的关于Java中List集合的面试问题&#xff0c;结合源码分析题目背后的知识点。 关于的Set的博客文章如下&#xff1a; Java进阶&#xff08;Set&#xff09;——面试时…

【C语言_题库】C语言:编写一个程序,输入一组字符串,将字符串中的小写字母转换为大写字母,其它字符不变,并输出。

把键盘输入的一行字符串的小写字母转换成大写字母,其余字符不变,进行输出,直到遇到回车为止。 具体说明 【问题描述】 从键盘输入一行英文字符串,把所有小写字母变成大写字母,其他字母和字符保持不变。 【输入形式】 输入一行字符串,含大小写。 【输出形式】 输出大写字…

linux后台运行python脚本

前言 我们在运行程序时&#xff0c;有的程序花费时间较多&#xff0c;但我们总不能一直看着程序运行&#xff0c;所以我在这里记录一下&#xff0c;Linux服务器如何后台运行我们的脚本程序 实现后台运行程序 我们登录到服务器&#xff0c;切换至目录到我们所要运行的程序下 …