【Linux工具篇】---vim的基本使用

news2024/9/22 13:54:24

个人主页:平行线也会相交
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创
收录于专栏【Linux专栏】🎈
本专栏旨在分享学习Linux的一点学习心得,欢迎大家在评论区讨论💌
在这里插入图片描述

目录

  • 🍰什么是vim
  • 🍰vim的基本操作
  • 🍰正常模式(命令模式)命令集
    • 🍪光标定位
    • 🍪复制
    • 🍪撤销
    • 🍪替换
    • 🍪删除文字
    • 🍪撤销上一次操作
    • 🍪多文件多窗口编辑
  • 🍰底行模式命令集
    • 🍬文件的保存和退出
    • 🍬显示行号
  • 🍰简单vim配置
    • ☕常用的配置选项

🍰什么是vim

在vim中有很多模式,我们这里主要介绍三种模式,分别是命令模式(也称为命令模式或者普通模式)、底行模式、插入模式。

  • 命令模式(默认模式)

在命令模式中,用户可以执行各种命令,用户所有的输入都会被当作指令。一般不会让我们进行文本输入。

  • 插入模式

插入模式是用来输入文本的模式,用户可以在此模式下非常方便地通过键盘输入文本内容,从而对文件进行编辑。

  • 底行模式

底行模式(Command-line mode)是用户可以执行多种操作的模式,用户可以通过底行模式来进行文件的保存、退出、搜索、替换、修改行号等操作。

🍰vim的基本操作

  • 命令模式进入插入模式

输入i
在这里插入图片描述

  • 插入模式进入命令模式

「ESC」键转到[正常模式] 在这里插入图片描述

  • 命令模式进入底行模式

输入:

  • 底行模式到命令模式

直接无脑按「ESC」键

  • 退出vim及保存文件

:w (保存当前文件)
:wq (输入「wq」,存盘并退出vim)
:q! (输入q!,不存盘强制退出vim)

🍰正常模式(命令模式)命令集

🍪光标定位

gg:光标进入到文本开始。
shift键+g(G):光标定位到文本最后。
光标任意定位方式一(:n):
:n:定位光标到任意行,其中n为要移动到的行号。比如:10。将光标移到第10行的行首。这里一定要注意输入的数字大家一定要是中文输入法的数字,而不是英文输入法的数字。
光标任意定位方式二(nG):
nG:如果想跳转到文件的第5行,只需在 Vim 的命令模式下输入:5G
shift+$:定位光标到当前行结尾。
shift+^:定位光标到当前行开头。
w、b:光标按照单词进行行内跨行进行移动。
h、j、k、l:光标向进行移动。
shift+~:当光标位于某一行上时,按下 shift+~ 键,Vim 会切换当前行的大小写。如果当前行的字母都是小写,则切换后的行字母会变成大写;如果当前行的字母都是大写,则切换后的行字母会变成小写。

🍪复制

nyy:复制光标所在(n行)。
(n)p:粘贴(n重复行)到光标所在的下一行。
这里来举一个例子方便理解,请看
在这里插入图片描述

🍪撤销

「u」:如果我们错误的执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复。

🍪替换

r:通过 r 命令来替换当前光标所在的字符。如果想将光标所在的字符替换成 x:将光标移动到要替换的字符上,然后输入 r 命令,输入字符 x,最后回车即可。
nr:将光标字符一次性向后数4个字符,然后替换成我们想要的字符。
「R」:替换光标所到之处的字符,直到按下「ESC」键为止。
在这里插入图片描述

🍪删除文字

「x」:每按一次,删除光标所在位置的一个字符。
nx:对光标之后的n个字符进行删除。
(n)dd: 命令可以删除当前行,并把被删除的行存储到 Vim 的缓冲区内(如果我们在利用复制p的话那这就可以充当剪切了),当然我们也可以直接删除但是不进行复制。这里的选择权就在于我们啦。总之就两个功能:删除、剪切。

🍪撤销上一次操作

「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次撤销。
「ctrl + r」: 撤销的恢复

🍪多文件多窗口编辑

这里要注意一下,光标在哪个窗口就对哪个窗口进行操作。

:vs filename:命令可以打开一个垂直分割窗口,并在其中打开指定的文件。
ctrl+w+w:窗口光标切换。

🍰底行模式命令集

🍬文件的保存和退出

:w: 在冒号输入字母「w」就可以将文件保存起来。
:w!:强制保存文件。
:q!:强制退出文件。
:wq!强制退出并保存文件。

🍬显示行号

:set nu:开启行号显示,用于在编辑时方便查看行号。
在这里插入图片描述
:set nonu:使行号消失。

🍰简单vim配置

在这里插入图片描述

☕常用的配置选项

set nu:显示行号。
set showmatch:设置语法高亮。
set cursorline :可以开启光标所在行高亮显示。
在这里插入图片描述

好了,以上就是Linux工具中vim的基本使用。不算复杂,但是需要我们常常进行练习,否则很多就会忘记。
就到这里啦,再见啦,友友们!!!

在这里插入图片描述

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

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

相关文章

C# 学习(一)概述

今天开始学习 C#,所有学习资料来源于: 菜鸟教程 一、C# 简介 C# 是 .NET 框架的一部分,随之创造出来的语言,所以了解 C# 前,需要知道 .NET 是个什么东西。 1.1 .NET 框架介绍 .NET 是微软提出的 Web 的一种软件开发…

智能文档图像处理技术应用与实践

写在前面智能文档处理面临的技术难题智能文档处理的研究领域● 文档图像分析与预处理● 手写板反光擦除● 版面分析与文档还原 写在最后 写在前面 VALSE 2023 无锡视觉与学习青年学者研讨会近期在无锡国际博览中心举办,由江南大学和无锡新吴区联合承办。本次会议旨…

卡尔曼滤波在目标跟踪中的应用(4)

在前一节内容中,我们学习了二维匀加速运动目标的卡尔曼滤波问题,同时利用MATLAB进行了仿真验证,今天我们继续往下扩展一个维度,学习三维空间下的卡尔曼滤波问题。 话不多说,开整!!! …

【深度学习】6-1 卷积神经网络 - 卷积层

卷积神经网络(Convolutional Neural Network,CNN)。 CNN 被用于图像识别、语音识别等各种场合,在图像识别的比赛中,基于深度学习的方法几乎都以 CNN 为基础。 首先,来看一下 CNN 的网络结构,了解 CNN 的大致框架。CNN…

算法程序设计 之 装载问题(6/8)

一、实验目的: 理解并掌握回溯法与分支限界法的联系与区别,学会构造不同问题的解空间树,用上述两种算法解决装载问题。 实验内容问题描述:有n个集装箱要装上2艘载重量分别为C1和C2的轮船,其中集装箱i的重量为wi&#…

论文浅尝 | DEER:解释实体关系的描述性知识图谱

笔记整理:王润哲,东南大学硕士,研究方向为多元关系抽取 链接:https://aclanthology.org/2022.emnlp-main.448.pdf 动机 实体关系是知识图谱中不可或缺的一层重要信息,它们描述了实体之间的语义关系,这种连接…

【力扣刷题 | 第十二天】

目录 前言: 104. 二叉树的最大深度 - 力扣(LeetCode) 111. 二叉树的最小深度 - 力扣(LeetCode) 前序遍历: 后序遍历: 总结: 前言: 今天还是对树的基础题进行刷题&am…

大数据Doris(四十七):开启Steam Load记录

文章目录 开启Steam Load记录 一、停止 Doris 集群 二、在 node3-node5 BE 节点上配置 be.conf 三、重新启动 Doris 集群 开启Steam Load记录 后续执行Stream Load 导入任务后,我们会在Doris集群中会查询对应Stream Load任务的情况,默认BE是不记录S…

【Rust日报】2023-06-20 使用Quickwit、Jaeger和Grafana监控您的Rust应用程序

使用Quickwit、Jaeger和Grafana监控您的Rust应用程序 你可能已经看过了Lucas Palmieri的博客文章Are we observable yet? An introduction to Rust telemetry。如果你还没有看过,我们建议阅读一下,因为它提供了一个全面的介绍,介绍了如何处理…

【Python 基础篇】Python 函数:代码重用的利器

文章目录 导言一、创建函数二、函数参数1、位置参数2、关键字参数3、默认参数 三、函数返回值四、函数的高级用法1、递归函数2、匿名函数3、内置函数 总结 导言 函数是一种在Python中定义和封装可重用代码的重要机制。它们使我们能够将复杂的任务分解为更小的部分,…

【算法与数据结构】15、LeetCode三数之和

文章目录 一、题目二、双指针法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、双指针法 思路分析:我们使用双指针法,但这道题因为要求数组三个元素的和,一共用到了三个指…

新人拿到一个web项目如何使用idea发布运行

本文描述的是一个新手,拿到一个web项目,使用idea如何发布运行。项目中没有非常复杂的元素,只是试着描述应该如何配置相关内容。 内容描述前提,首先请您确认tomcat已经安装,其次确认jdk已经安装,并明确他们在…

基于Java农产品仓库管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

管理类联考——逻辑——技巧篇——论证推理(10-12 道左右)——五大秒杀思路

逻辑考试出题思路分类 论证推理(10-12 道左右) 论证推理细分思路 假设——补全逻辑假设——引入前提前真后假 - 前假后真建立联系型支持由果推因的削弱由因推果 / 直接引入他因指出不同 / 指出相同五大固定秒杀思路解释类题目评价类题目 论证推理题目…

C语言学习(二十四)---递归与冒泡排序法

在前面几节的内容中,我们学习了指针的相关概念,至此,指针的内容就暂时告一段落了,今天我们将继续向下学习,主要内容为递归和冒泡排序法,好了,话不多说,开整!!…

【AndroidUI设计】主界面设计-Toolbar的简单使用

文章目录 一、引言二、了解三、编码1、UI设计2、编码 一、引言 描述:需要设计一个主界面,菜单通过主界面的左边界划入,实现点击跳转修改主界面内容的一个效果,并且点击非内容区域恢复原界面的一个效果。做到菜单的弹出&#xff0…

Vue3 One Piece Study

目录 脚手架安装vue3 使用vue-cli创建 使用vite创建 setup 介绍 示例使用 ref函数 介绍 代码示例 reactive函数 介绍 代码示例 脚手架安装vue3 使用vue-cli创建 vue create 项目名 安装完成 进入到刚才创建的项目目录中 cd vue3_test 输入npm run serve测试 使用…

基于Java健康综合咨询问诊平台设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

STM32 HAL库开发——入门篇(2):定时器

目录 一、TIMER定时器概述 1.1 软件定时原理 1.2 定时器定时原理 1.3 STM32定时器分类 1.4 STM32定时器特性表 1.5 STM32基本、通用、高级定时器功能整体的区别 二、基本定时器 2.1 基本定时器简介 2.3 STM32定时器计数模式及溢出条件 2.4 定时器中断实验相关寄存器 …

MySQL创建商品订单数据库

目录 一、商品分类表 ProductClass1. 创建 ProductClass表2. 插入数据3. 展示 二、客户表 Customer记录1. 创建 Customer表2. 插入数据3. 展示 三、商品表 Product1. 创建 Product表2. 插入数据3. 展示 四、员工表Employee1. 创建 Employee表2. 插入数据3. 展示 五、订单主表 O…