Linux Vi/Vim使用 ⑥
掌握 CentOS 7 下的 Vi/Vim 编辑器:从安装到精通
在 CentOS 7 系统的日常运维、编程开发以及各类文本处理场景中,Vi/Vim 编辑器都是不可或缺的得力工具。它以轻量、高效、功能强大著称,虽然初次上手有一定学习门槛,但掌握之后便能大幅提升工作效率。今天,咱们就从安装讲起,一步步深入 Vi/Vim 的奇妙世界,借助丰富的代码案例,让你轻松上手。
一、安装 Vim 编辑器
CentOS 7 默认预装了基础版的 Vi,但为了享受更多高级功能,我们通常会选择安装功能更完备的 Vim。安装过程非常简单,利用系统自带的软件包管理工具 yum 即可快速搞定。
打开终端,输入以下命令:
yum install vim -y
这里,yum
是 CentOS 7 系统中强大的包管理器,负责软件的安装、更新与卸载;install
是 yum
命令的一个关键子命令,明确告知系统要执行安装操作;vim
自然就是我们的目标软件包名称;-y
参数很贴心,它的作用是自动应答所有安装过程中的确认提示,让安装一气呵成,无需手动逐个确认,大大节省时间。
安装完成后,输入 vim --version
来验证安装情况,你会看到类似如下的版本信息输出:
VIM - Vi IMproved 7.4.160 (2016 Aug 10, compiled Aug 2 2017 03:49:32)
Included patches: 1-160
Modified by <bugzilla@redhat.com>
Compiled by <bugzilla@redhat.com>
...
看到这些信息,就说明 Vim 已经成功入驻你的系统啦。
以下是为你补充了 vi
和 vim
操作参数表格的内容,方便更清晰对比和查看相关操作:
vi
和 vim
常用操作参数表格
操作分类 | 操作描述 | vi 命令格式示例 | vim 命令格式示例 | 说明 |
---|---|---|---|---|
启动编辑器 | 打开已有文件 | vi /etc/hosts | vim /etc/hosts | /etc/hosts 可替换为实际要编辑的文件路径,vi 为基础版,vim 功能更丰富 |
新建文件 | vi new_file.txt | vim new_file.txt | 创建名为 new_file.txt 的新空白文件,按需替换文件名 | |
退出编辑器 | 正常保存并退出 | :wq (先按 Esc 进入命令模式后输入) | :wq (先按 Esc 进入命令模式后输入) | 保存文件内容并关闭编辑器 |
不保存直接退出 | :q! (先按 Esc 进入命令模式后输入) | :q! (先按 Esc 进入命令模式后输入) | 强制忽略未保存修改,直接关闭编辑器 | |
只保存不退出 | :w (先按 Esc 进入命令模式后输入) | :w (先按 Esc 进入命令模式后输入) | 仅保存当前文件内容,可继续编辑 | |
光标移动(命令模式) | 移到文件开头 | gg | gg | 快速将光标定位到文件首行开头位置 |
移到文件末尾 | G | G | 快速将光标定位到文件最后一行开头位置 | |
移到指定行(如第 n 行) | nG | nG | 将光标定位到指定的第 n 行开头,n 为具体行数数字 | |
向左移动光标 | h | h | 按一次光标向左移动一个字符位置 | |
向下移动光标 | j | j | 按一次光标向下移动一个字符位置 | |
向上移动光标 | k | k | 按一次光标向上移动一个字符位置 | |
向右移动光标 | l | l | 按一次光标向右移动一个字符位置 | |
文本删除(命令模式) | 删除单个字符 | x | x | 将光标移到要删除的字符上,按下此键删除该字符 |
删除整行 | dd | dd | 将光标移到要删除的行,按下此键删除整行内容 | |
文本复制粘贴(命令模式) | 复制一行 | yy | yy | 将光标移到要复制的行,按下此键复制该行内容 |
粘贴 | p | p | 将光标移到目标粘贴位置,按下此键粘贴已复制的内容 | |
插入模式进入(命令模式切换) | 在光标当前位置插入文字 | 按 i 键 | 按 i 键 | 进入插入模式,可在光标所在位置开始输入文字,按 Esc 键返回命令模式 |
在光标后面位置插入文字 | 按 a 键 | 按 a 键 | 进入插入模式,在光标后开始输入文字,按 Esc 键返回命令模式 | |
在当前行下方新开一行并插入文字 | 按 o 键 | 按 o 键 | 进入插入模式,在当前行下方新开一行用于输入文字,按 Esc 键返回命令模式 | |
末行模式操作(命令模式切换) | 保存并退出 | :wq | :wq | 先按 : 键进入末行模式,再输入此命令保存并退出编辑器 |
查找替换(全局) | :%s/要替换的内容/替换后的内容/g | :%s/要替换的内容/替换后的内容/g | 先按 : 键进入末行模式,如将文件内所有 the 替换成 a 可输入 :%s/the/a/g ,回车执行替换操作 | |
查找替换(指定行) | :n s/要替换的内容/替换后的内容/g (n 为行数) | :n s/要替换的内容/替换后的内容/g (n 为行数) | 先按 : 键进入末行模式,如替换第 3 行的 the 可输入 :3s/the/a/g ,回车执行替换操作 |
通过这个表格,可以更直观地对比 vi
和 vim
在相同操作类型下的命令格式,有助于更快速准确地在不同场景下使用它们进行文本编辑操作。同时结合前面文档中详细的文字描述和案例讲解,相信能更好地掌握这两个编辑器的使用方法哦。
希望这份补充内容符合你的需求,要是还有其他想添加或者修改的地方,可以继续向我提问呀。
二、Vi/Vim 编辑器的启动与退出
(一)启动编辑器
要打开一个已有的文件,比如编辑 /etc/hosts
文件(这可是系统网络配置的关键文件,修改时要倍加小心),在终端敲下:
vim /etc/hosts
或者
vi /etc/hosts
要是想用基础版的 Vi,把 vim
换成 vi
就行。文件瞬间在编辑器窗口中打开,光标稳稳落在首行开头,等待你大展拳脚。
要是想新建一个文件,例如记录日常学习笔记,创建一个名为 learning_notes.txt
的文件,只需输入:
vim learning_notes.txt
或者
vi learning_notes.txt
编辑器马上新建一个空白文档,准备好迎接你的文字。
(二)退出编辑器
退出环节有好几招,各有各的妙处。
正常保存并退出:精心编辑完 learning_notes.txt
,想保存成果并潇洒离场,先按下键盘上的 Esc
键,确保进入命令模式,接着输入 :wq
然后回车。这里的 :w
代表 write
,意思是保存文件内容;q
表示 quit
,就是退出编辑器,二者联手实现完美收官。操作示例如下:
# 编辑完毕,按下 Esc 键
: wq
# 回车,文件保存,编辑器关闭
不保存直接退出:要是觉得这次编辑不太满意,改动都不想要了,按下 Esc
键进入命令模式,紧接着输入 :q!
回车。注意这个 !
,它起着强制的作用,让编辑器无视那些未保存的修改,强行退出。演示如下:
# 按下 Esc 键进入命令模式
: q!
# 回车,编辑器直接关闭,修改未保存
只保存不退出:编辑到一半,担心电脑出状况丢了辛苦写的内容,想先存个档?按 Esc
键进入命令模式,输入 :w
回车就行。操作如下:
# 编辑中途,按下 Esc 键
: w
# 回车,文件保存,可继续编辑
三、深入探索三种模式
Vi/Vim 编辑器最精妙之处在于其三模式设计:命令模式、插入模式、末行模式,灵活切换、熟练运用是掌握它的关键。
(一)命令模式(Command Mode)
这是打开 Vi/Vim 编辑器的默认模式,掌管着光标移动、文本删改、复制粘贴等诸多本领。
- 光标移动操作:
假设正在编辑test.txt
文件,内容如下:
The quick brown fox jumps over the lazy dog.
Another line for testing cursor movement.
最直观的,你能用键盘上的方向键操控光标走向;同时,还有一套高效的快捷键——h
(向左移动光标)、j
(向下移动光标)、k
(向上移动光标)、l
(向右移动光标)。要是光标在首行开头,想快速移到首行末尾,连按 l
键就行:
# 光标处于首行开头
l
l
l
l
l
l
l
l
l
l
# 光标移至 'dog.' 的 '.' 位置
要是想迅速回到文件开头,按下 gg
;想直达文件末尾,按 G
;要是想去指定行,比如第 3 行,输入 3G
就行。
- 文本删除操作:
碰上文件里有多余字符或行要清理的时候,这些操作就派上用场了。
删除单个字符,把光标移到目标字符上,按下x
键。比如说想删去第二行的r
字符:
# 移动光标到第二行 'r' 字符位置
x
# 该行变为 'Another line fo testing cursor movement.'
要是一整行都多余,把光标移到该行,按 dd
键就能删除整行。要是觉得第二行没用了,操作如下:
# 移动光标到第二行
j
# 按 dd 键删除该行
dd
# 文件就剩一行:The quick brown fox jumps over the lazy dog.
- 文本复制粘贴操作:
想复制一行内容,先把光标移到该行,按下yy
键;粘贴的时候,把光标移到目标位置,按p
键就行。比如复制首行,贴到文末:
# 移光标到首行
gg
# 按 yy 复制首行
yy
# 移光标到文末
G
# 按 p 粘贴
p
# 文件内容变成:
# The quick brown fox jumps over the lazy dog.
# The quick brown fox jumps over the lazy dog.
(二)插入模式(Insert Mode)
从命令模式按下特定按键,就能进入这个自由输入文字的模式。
想在光标当前位置插入文字,按下 i
键。要是文件里 test
拼成了 tset
,移光标到 s
后,按 i
键输入 e
修正,再按 Esc
回命令模式:
# 移光标到 's' 后
i
# 输入 'e'
e
# 按 Esc,单词变回 'test'
要是想在光标后面位置插入文字,按 a
键。比如想在 The
和 quick
间加 very
,移光标到 The
后空格,按 a
键输入 very
,按 Esc
回命令模式:
# 移光标到指定位置
a
# 输入'very'very
# 按 Esc,变为 'The very quick brown fox jumps over the lazy dog.'
要是想在当前行下方新开一行并插入文字,按下 o
键。假设文件最后一行写完了,想新开一行写总结,移光标到末行,按 o
键,输入总结内容,再按 Esc
回命令模式:
# 移光标到末行
# 按 o 键新开一行
o
# 输入总结内容,例如 'This is the end of the text.'
This is the end of the text.
# 按 Esc 完成操作
(三)末行模式(Last Line Mode)
在命令模式下按下 :
键,就进入了这个用于执行关键操作的末行模式。
保存文件与退出编辑器的操作咱们前面提过了,再来说说查找替换功能。
假设 test.txt
文件里多次出现 the
,想把它们全换成 a
,在命令模式下按下 :
键进入末行模式,输入 :%s/the/a/g
回车。这里,%
表示针对整个文件;s
是 substitute
的简写,意为替换;the
是要被替换的内容;a
是替换后的内容;g
表示全局替换,要是不加 g
,只替换每行第一个匹配项。操作如下:
# 在命令模式下按 : 键进入末行模式
:
# 输入查找替换命令,然后回车
:%s/the/a/g
# 文件里所有 'the' 都被替换成 'a'
要是只想替换指定行内的内容,比如只替换第 2 行的 the
,输入 :2s/the/a/g
回车就行。
四、总结与练习
Vi/Vim 编辑器功能远不止这些,咱们今天学的只是冰山一角。初次接触可能觉得模式切换有点绕,但多练习、多实操,形成肌肉记忆,很快就能得心应手。
以下是一个综合练习案例,涵盖了前面所讲的 Vi/Vim 编辑器的相关知识点:
练习案例
现有一个名为 practice.txt
的文本文件,内容如下:
The beautiful flower grows beside the small path.
There are many stones on the path.
The color of the flower is red.
请按照以下要求对该文件进行操作:
- 启动 Vim 编辑器打开
practice.txt
文件。 - 将光标快速移动到文件末尾,然后再移动回文件开头。
- 删除第二行整行内容。
- 复制第三行内容,并粘贴到第一行下方。
- 在第一行 “The” 和 “beautiful” 之间插入单词 “very”。
- 进入末行模式,将文件中所有的 “the” 替换成 “a”(全局替换)。
- 保存文件并退出编辑器。
操作步骤及答案
- 启动 Vim 编辑器打开
practice.txt
文件:
在终端输入以下命令:
vim practice.txt
- 将光标快速移动到文件末尾,然后再移动回文件开头:
进入编辑器后,按G
键可将光标快速移动到文件末尾;再按gg
键,就能将光标移动回文件开头。 - 删除第二行整行内容:
先通过按j
键将光标移动到第二行(也可以使用其他光标移动快捷键组合来定位),然后按下dd
键,即可删除第二行整行内容。此时文件内容变为:
The beautiful flower grows beside the small path.
The color of the flower is red.
- 复制第三行内容,并粘贴到第一行下方:
将光标移动到第三行(可以使用3G
等方式快速定位),按下yy
键复制该行内容;接着将光标移动到第一行末尾(可以通过多次按l
键或者使用其他合适的光标移动操作),按下p
键进行粘贴。此时文件内容变为:
The beautiful flower grows beside the small path.
The color of the flower is red.
The color of the flower is red.
- 在第一行 “The” 和 “beautiful” 之间插入单词 “very”:
将光标移动到第一行 “The” 后的空格处,按下i
键进入插入模式,接着输入 “very”,再按Esc
键返回命令模式。此时第一行内容变为 “The very beautiful flower grows beside the small path.”,文件整体内容如下:
The very beautiful flower grows beside the small path.
The color of the flower is red.
The color of the flower is red.
- 进入末行模式,将文件中所有的 “the” 替换成 “a”(全局替换):
在命令模式下按下:
键进入末行模式,输入:%s/the/a/g
回车,即可完成全局替换操作。此时文件内容变为:
A very beautiful flower grows beside a small path.
A color of a flower is red.
A color of a flower is red.
- 保存文件并退出编辑器:
按下Esc
键确保处于命令模式,然后输入:wq
回车,就可以保存文件并退出 Vim 编辑器了。
通过这个练习案例,可以对前面所学的 Vi/Vim 编辑器的启动、光标移动、文本删除、复制粘贴以及末行模式下的查找替换、保存退出等知识点进行巩固练习,希望大家可以多多练习,熟练掌握 Vi/Vim 编辑器的使用哦。
相关文章:
Linux Vi/Vim使用 ⑥
掌握 CentOS 7 下的 Vi/Vim 编辑器:从安装到精通 在 CentOS 7 系统的日常运维、编程开发以及各类文本处理场景中,Vi/Vim 编辑器都是不可或缺的得力工具。它以轻量、高效、功能强大著称,虽然初次上手有一定学习门槛,但掌握之后便能…...
【5G】5G技术组件 5G Technology Components
5G的目标设置非常高,不仅在数据速率上要求达到20Gbps,在容量提升上要达到1000倍,还要为诸如大规模物联网(IoT, Internet of Things)和关键通信等新服务提供灵活的平台。这些高目标要求5G网络采用多种新技术…...
Java 学习,字符串比较
Java 字符串比较通常使用 equals() 方法,而不是使用 运算符。因为 运算符,比较的是字符串对象的引用是否相同,而 equals() 方法比较的是字符串的内容是否相同。 使用equals()等方法,比较两个字符串: public class …...
普通算法——二维前缀和
二维前缀和 题目链接:https://www.acwing.com/problem/content/798/ 题目描述: 输入一个 n n n 行 m m m 列的整数矩阵,再输入 q q q 个询问,每个询问包含四个整数 ** x 1 , y 1 , x 2 , y 2 x1,y1,x2,y2 x1,y1,x2,y2 &…...
2024年API接口发展趋势:智能化、自动化引领潮流
随着信息技术的飞速发展,应用程序编程接口(API)已成为现代软件开发的核心组成部分。API作为不同系统之间的桥梁,使得数据、功能和服务能够在各种平台和设备之间无缝流动。在2024年,API接口正经历着一系列显著的变革和发…...
SQL中的通配符:使用LIKE操作符进行模式匹配
在SQL中,LIKE 操作符用于在查询中进行模式匹配。它常用于 WHERE 子句中,以便根据特定模式查找数据。与直接进行精确匹配的 操作符不同,LIKE 允许你使用通配符来对数据进行模糊查询,从而使查询更加灵活和强大。 常见的SQL通配符 …...
数据结构:数组
线性表: 线性表就是数据排成像一条线一样的结构.每个现行表上的数据最多只有前和后两个方向.常见的线性表结构:数组,链表、队列、栈等。 什么是数组: 数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储…...
2022 年“泰迪杯”数据分析技能赛A 题竞赛作品的自动评判
2022 年“泰迪杯”数据分析技能赛A 题竞赛作品的自动评判 完整代码请私聊 博主 一、背景 在各类学科竞赛中,常常要求参赛者提交 Excel 或/和 PDF 格式的竞赛作品。 本赛题以某届数据分析竞赛作品的评阅为背景,要求参赛者根据给定的评分准则和标准答案&a…...
java+ssm+mysql美妆论坛
项目介绍: 使用javassmmysql开发的美妆论坛,系统包含超级管理员,系统管理员、用户角色,功能如下: 用户:主要是前台功能使用,包括注册、登录;查看论坛板块和板块下帖子;…...
MySQL | 尚硅谷 | 第13章_约束
MySQL笔记:第13章_约束 文章目录 MySQL笔记:第13章_约束第13章_约束 1. 约束(constraint)概述1.1 为什么需要约束1.2 什么是约束1.3 约束的分类演示代码 2. 非空约束2.1 作用2.2 关键字2.3 特点2.4 添加非空约束2.5 删除非空约束演示代码 3. 唯一性约束3…...
【Ubuntu】Ubuntu的Desktop(学习/用户使用)和Bit版本(工作)
这篇文章似乎没什么必要写,但想了想还是决定记录一下,也许对新手入坑Ubuntu会有帮助, 事实上也很简单,一个是桌面版本,另一个是字符界面版本。 桌面版:拥有图形桌面 字符界面,易上手ÿ…...
面试之MySQL自增ID耗尽问题的解决方案详解
自增ID耗尽问题的解决方案详解 目录 引言切换到BIGINT分表分库UUID雪花算法(Snowflake)回收已删除的ID其他策略策略选择和实施总结 引言 在现代数据库应用中,自增ID作为主键被广泛使用。随着数据量的不断增长,自增ID耗尽问题逐…...
数据结构第一弹-平衡树
大家好,今天和大家一起分享一下数据结构中的平衡树~ 平衡树是一种特别重要的数据结构,它通过维持树的高度来保证操作的效率,从而在众多数据结构中脱颖而出。我们今天深入探讨平衡树的概念、种类、工作原理以及应用实例。 1. 平衡树简介 平衡…...
k8s二进制部署集群报错
k8s二进制部署的集群 添加node节点之后 部署服务之后出现报错 在该节点上telnet 172.30.0.1 443也不通 其他正常节点telnet是通的 解决办法: 修改kube-proxy的服务配置 systemctl daemon-reload systemctl restart kube-proxy再次telnet通了...
深入了解架构中常见的4种缓存模式及其实现
4种缓存模式 随着应用程序的复杂性日益增加,缓存管理变得至关重要。缓存不仅能有效减轻数据库负载,还能显著提升数据访问速度。选择合适的缓存模式能够在不同的业务场景下发挥出最佳效果。 本文将详细介绍四种常见的缓存模式:Cache-Aside (…...
python pyqt5 优秀的开源项目
目录 1. Qutebrowser 2. Anki 3. Calibre 4. Spyder 5. Leo Editor 6. Trelby 7. Eric IDE 8. Fman 9. Gramps 10. OpenShot 使用 PyQt5 开发的优秀开源项目涵盖了各种应用领域,包括桌面应用、开发工具、教育软件等。以下是一些值得关注的 PyQt5 开源项目: 1. Qut…...
【C++】关系操作符的全面解析与高级应用
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯关系操作符1.关系操作符的分类与语义2.关系操作符的连用问题3.浮点数比较的精度问题问题示例解决方案 💯总结核心要点 💯小结 💯前言 在…...
Git进行版本控制的VS项目中特定配置
在使用Git进行版本控制的VS(Visual Studio)项目中,通常有一些文件和目录是不需要提交到仓库中的。这些文件通常是编译生成的输出、临时文件、用户特定配置等。为了告诉Git忽略这些文件,你应该编辑或创建一个.gitignore文件&#x…...
Linux Ubuntu 安装配置RabbitMQ,springboot使用RabbitMQ
rabbit-Ubuntu 一篇文章学会RabbitMQ 在Ubuntu上查看RabbitMQ状态可以通过多种方式进行,包括使用命令行工具和Web管理界面。以下是一些常用的方法: 1-使用systemctl命令: sudo systemctl start rabbitmq-server sudo systemctl status ra…...
MongoDB数据建模小案例
MongoDB数据建模小案例 朋友圈评论内容管理 需求 社交类的APP需求,一般都会引入“朋友圈”功能,这个产品特性有一个非常重要的功能就是评论体系。 先整理下需求: 这个APP希望点赞和评论信息都要包含头像信息: 点赞列表,点赞用户的昵称,头像;评论列表,评论用户的昵称…...
基于MATLAB野外观测站生态气象数据处理分析实践应用
1.本课程基于MATLAB语言 2.以实践案例为主,提供所有代码 3.原理与操作结合 4.布置作业,答疑与拓展 示意图: 以野外观测站高频时序生态气象数据为例,基于MATLAB开展上机操作: 1.不同生态气象要素文件的数据读写与批处理…...
《三角洲行动》游戏安全组件运行时发生异常1-0-0,是什么原因?以及要如何解决?
《三角洲行动》游戏安全组件异常1-0-0深度探讨 今天你们安全撤离了吗?在《三角洲行动》这款经典射击游戏里,游戏安全组件运行时发生异常1-0-0的原因及解决方案,并借此机会分享一些有关文件丢失、文件损坏和系统报错等问题的通用解决策略。希…...
VAS1260Q奇力LED驱动芯片DCDC降压恒流可替代Diodes8860
VAS1260Q是一款专为车规级LED照明设计的连续模式电感降压驱动器,能够高效地驱动单个或多个串联LED。它集成了高端输出电流检测电路,并通过外部电阻设置标称平均输出电流,具有高可靠性和宽广的应用场景。 核心技术参数 1. 输入电压范围…...
leetcode-88.合并两个有序数组(易理解)
双指针 为了合并两个已排序的数组 nums1 和 nums2,并将结果存储在 nums1 中,我们可以采用双指针的方式从后向前进行合并。这种方法的好处是可以避免在nums1中移动元素,从而提高效率。 算法步骤 初始化三个指针: p1 指向 nums1 的…...
github操作学习笔记
git开源的分布式版本控制系统: 每次修改文件提交后,都会自动创建一个项目版本 查看git版本看有没有安装成功:git --version 把默认编辑器设置成vim:git config --global core.editor "vim" 1、设置昵称和邮箱ÿ…...
基于Hadoop大数据音乐推荐系统的设计与实现
摘 要 各种主流的音乐平台都为用户提供了的大量的音乐,让他们时刻都能沉浸在音乐的海洋之中。然而,过多的音乐往往使用户眼花缭乱,很难发现他们真正所需要的。一套优秀的推荐系统,可以很好地解决这个问题,既能帮助用户…...
【Linux】冯诺依曼体系结构
目录 一、冯诺依曼体系结构二、冯诺依曼体系结构的基本组成三、关于冯诺依曼体系结构的一些问题结尾 一、冯诺依曼体系结构 冯诺依曼体系结构,也称为普林斯顿结构,是现代计算机设计的基础框架。这一体系结构由数学家冯诺依曼在20世纪40年代提出…...
2025计算机毕设选题推荐【小程序方向】【基础功能+创新点设计】
✅博主介绍:CSDN毕设辅导博主、CSDN认证 Java领域优质创作者 ✅技术范围:主要包括Java、Vue、Python、爬虫、小程序、安卓app、大数据、机器学习等设计与开发。 ✅主要内容:免费功能设计、开题报告、任务书、功能实现、代码编写、论文编写和…...
CSS系列(3)-- 定位与文档流详解
前端技术探索系列:CSS 定位与文档流详解 📍 致读者:掌握页面布局的精髓 👋 前端开发者们, 今天我们将深入探讨 CSS 定位与文档流,这是掌握页面布局的关键所在。通过本文,你将全面理解各种定位…...
【书生大模型实战营】Linux 基础知识-L0G1000
前言:书生大模型实战营是上海人工智能实验室开展的大模型系列实践活动,提供免费算力平台,学员通过闯关式任务,可获得免费算力和存储,助力项目实践。本期是第4期,时间从十一月份开始,持续到十二月…...
小程序IOS安全区域优化:safe-area-inset-bottom
ios下边有一个小黑线,位于底部的元素会被黑线阻挡 safe-area-inset-bottom 一 用法及作用: IOS全面屏底部有小黑线,位于底部的元素会被黑线阻挡,可以使用以下样式: .model{padding-bottom: constant(safe-area-ins…...
STM32-C语言基础知识
C语言基础知识 stdint.h简介 给寄存器某个位赋值 给位6赋值为1流程:先清0,再赋值 带参数的宏定义 建议使用do {…}while(0)来构造宏定义 条件编译 条件编译后面必须跟宏语句,如#if _LED_H 指针使用常见的2大问题 1、未初始化 2、越界使…...
深度和法线纹理
屏幕后期处理效果的基本原理就是当游戏画面渲染完毕后通过获取到该画面的信息进行额外的效果处理 之前的边缘检测、高斯模糊、Bloom、运动模糊等效果都是基于获取当前屏幕图像中的像素信息进行后期处理的 如果仅仅根据像素信息来进行一些效果处理,存在以下问题&…...
21天掌握javaweb-->第11天:前端性能优化与响应式设计
前端性能优化与响应式设计 1. 前端性能优化技巧 1.1 代码分割(Code Splitting) 代码分割是一种将代码拆分成多个较小的包,并在需要时按需加载的技术,这有助于减少初始加载时间,并提高应用程序的响应速度。 实现方法…...
java+ssm+mysql校园物品租赁网
项目介绍: 使用javassmmysql开发的校园物品租赁网,系统包含管理员、用户角色,功能如下: 管理员:用户管理;物品管理(物品种类、物品信息、评论信息);订单管理࿱…...
C#常见错误—空对象错误
System.NullReferenceException:未将对象引用设置到对象的实例 在C#编程中,System.NullReferenceException是一个常见的运行时异常,其错误信息“未将对象引用设置到对象的实例”意味着代码试图访问一个未被初始化或已被设置为null的对象的成…...
GPT系列模型简要概述
GPT-1:(0.117B参数量,0.8B words预训练数据) 动机: 在RNN和Transformer之间,选择了后者。 和《All your need is Attention》翻译模型的Encoder-Decoder架构相比,只保留Decoder,因此去掉了Cross…...
关于睡懒觉
我们经常听到一个词:睡懒觉。 我认为,睡懒觉这个词,是错误的。 人,是需要睡眠的,睡不够,就不会醒。睡够了,自然会醒,也不想继续睡。不信你试试,睡够了,你…...
Spring Data JPA 入门
文章目录 前言、Spring Data JPA 是什么?1、背景2、优势3、Spring Data JPA 和 MyBatis-Plus 对比4、Spring Data JPA 与 JPA 的关系是什么? 一、准备1、依赖引入Spring Boot 框架依赖引入:非 Spring Boot 框架依赖引入: 2、定义实…...
操作系统用户界面
实验目的: LINUX操作系统提供了图形用户界面和命令行界面,本实验主要熟悉命令行界面,为后续的实验编程做准备。 二、实验内容: 写出每个命令的功能及格式 1、有关目录和文件操作的命令 1.1cat 功能: 1.一次显示整…...
区块链dapp 开发详解(VUE3.0)
1、安装metamask 插件。 2、使用封装的工具包: wagmi . 3、 wagmi 操作手册地址:connect | Wagmi 4、注意事项: 因为最初是react 版本,所以在VUE版的官方文档有很多地方在 import 用的是 wagmi,需要改为 wagmi/vue 。 连接成功后打印的内容如下&…...
BTC密码学原理
文章目录 比特币的密码学基础哈希函数(Hash Function)非对称加密(Asymmetric Cryptography)数字签名(Digital Signature) 工作量证明(Proof of Work)区块链技术的密码学保障区块链的…...
【NLP 9、实践 ① 五维随机向量交叉熵多分类】
目录 五维向量交叉熵多分类 规律: 实现: 1.设计模型 2.生成数据集 3.模型测试 4.模型训练 5.对训练的模型进行验证 调用模型 你的平静,是你最强的力量 —— 24.12.6 五维向量交叉熵多分类 规律: x是一个五维(索引)向量ÿ…...
Linux -文件系统的备份
本文为Ubuntu Linux操作系统- 第九弹~~ 今天接着上文的内容,讲Linux磁盘存储管理最后一部分内容~ 上期回顾:Linux 图形界面工具管理磁盘分区和文件系统 😎黑犀铠甲合体,流星枪之狂瀑扎帖,碎魔伏暴,灭于狂瀑…...
【Linux基础五】Linux开发工具—上(apt和vim)
【Linux基础五】Linux开发工具—上(apt和vim) 1.apt包管理工具2.Linux中的编辑器vim2.1命令模式2.2插入模式2.3底行模式2.4替换模式2.5视图模式2.6多线程操作2.7配置vim 1.apt包管理工具 在 Linux 系统中,软件包管理工具是用户安装、更新和管…...
力扣--LCR 134.Pow(x,n)
题目 实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。 示例 1: 输入:x 2.00000, n 10 输出:1024.00000 示例 2: 输入:x 2.10000, n 3 输出:9.2610…...
java抽奖系统(一)2.0
1. 项⽬介绍 1.1 背景 随着数字营销的兴起,企业越来越重视通过在线活动来吸引和留住客⼾。抽奖活动作为⼀种有效的营 销⼿段,能够显著提升⽤⼾参与度和品牌曝光率。于是我们就开发了以抽奖活动作为背景的Spring Boot项⽬,通过这个项⽬提供⼀…...
读取电视剧MP4视频的每一帧,检测出现的每一个人脸并保存
检测效果还不错,就是追踪有点难做 import cv2 import mediapipe as mp import os from collections import defaultdict# pip install msvc-runtime# 初始化OpenCV的MultiTracker # multi_tracker = cv2.MultiTracker_create() # multi_tracker = cv2.legacy.MultiTracker_cre…...
【MySQL 进阶之路】事务并发情况分析
MySQL事务并发控制分析笔记 在数据库系统中,事务并发控制至关重要,能够确保多个事务并发执行时的数据一致性、隔离性和正确性。MySQL通过不同的锁机制控制并发操作,以确保事务的隔离性。以下是对事务A和事务B并发行为的详细分析,…...
基于SSM的线上考试系统的设计与实现(计算机毕业设计)+万字说明文档
系统合集跳转 源码获取链接 一、系统环境 运行环境: 最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 IDE环境: Eclipse,Myeclipse,IDEA或者Spring Tool Suite都可以 tomcat环境: Tomcat 7.x,8.x,9.x版本均可 操作系统…...