Linux软件包管理与Vim编辑器使用指南
目录
一、Linux软件包管理器yum
1.什么是软件包?
2.什么是软件包管理器?
3.查看软件包
4.安装软件
编辑
5.卸载软件
Linux开发工具:
二、Linux编辑器---vim
1.vim的基本概念
(1) 正常/普通模式(Normal mode)
(2) 插入模式(insert mode)
(3) 底行模式(last line mode)
(4) vim三种模式的相互关系
2.vim的简易执行范例
(1) 使用【vim filename】
(2) [正常模式]切换至[插入模式]
(3) [插入模式]切换至[正常模式]
(4) [正常模式]切换至[底行模式]
(5) 退出vim环境
3.vim编辑模式命令集
(1) 移动光标
(2) 查找与替换
(3) 删除、复制与粘贴
4.普通模式切换到编辑模式命令集
5.vim底行模式命令集
6.可视化模式(Visual Mode)
7.总结
8.简单配置vim
(1) 配置文件的位置
(2) 常用配置选项用来测试
(3) 使用插件
9.参考资料
一、Linux软件包管理器yum
1.什么是软件包?
在Linux下安装软件:
(1) 通常的办法是下载到程序的源代码,并对其进行编译,得到可执行程序。
(2) 但是这样太麻烦,于是有人把一些常用的软件提前编译好,做成软件包---rpm(可以理解成Windows上安装程序)放在一个服务器上。(rpm是一种以数据库记录的方式将所需要的软件安装到Linux系统的一套软件管理机制 => 需要满足软件的依赖属性需求,满足版本兼容性需求)
(3) 通过包管理器 --- yum(Centos) / apt / apt-get(ubuntu)可以很方便的获取到这个编译好的软件包,直接进行安装(本质就是拷贝 => 必须使用root权限 => 安装到系统里,只要安装一次,所有人都能使用)。
2.什么是软件包管理器?
yum是Linux下非常常用的一种包管理器。软件包和软件包管理器,就好比“App”和“应用商店”的关系。主要应用于Fedora,RedHat,Centos等发行版上。
由于Linux发行版必须要先发布软件,然后软件放置于yum服务器上,以提供客户端来安装与升级之用。因此我们要使用yum功能时,必须要先找到合适的yum服务器才行。而每个人yum服务器可能都会提供许多不同的软件功能,因此,我们必须要前往yum服务器查询到想换的软件源网址后,再继续处理后续的设置事宜。但Centos在发布软件时已经制作出多个镜像站(国内知名的有阿里云、清华大学、163),提供全世界的软件更新之用。所以理论上我们不需要处理任何设置值,只要能连上网就可以使用yum(操作系统内部内置链接)。也就是说包管理器会自动解决软件的依赖关系。
3.查看软件包
通过yum list命令可以罗列出当前一共有哪些软件包。由于包的数目可能非常之多,这里我们需要使用grep命令只筛选出我们关注的包。
yum list | grep sl


4.安装软件
用 yum 完成 sl 的安装,yum会自动找到都有哪些软件包需要下载,这是敲 "y" 确认安装,出现“complete”说明安装成功。
sudo yum install sl
注意:
• 关于yum的所有操作必须保证主机(虚拟机)网络畅通!!!可以用ping指令验证:如果能够收到响应,说明主机可以访问互联网。
ping www.baidu.com• 安装软件时由于需要向系统目录中写入内容,一般需要sudo或者切到root用户下才能完成。
• yum安装软件只能一个装完了再装另外一个。正在yum安装一个软件的过程中,如果在尝试用yum安装另外一个软件,yum会报错。
• /etc/yum.repos.d/*里面的文件称之为yum源。也就是我们开头所提到的yum服务器。更新yum源也就是更新里面的文件。Base 是稳定软件源,epel 是扩展软件源(新软件)。
[zyt@iZ2vcf9wvlgcetfeub9f11Z ~]$ cd /etc/yum.repos.d/
[zyt@iZ2vcf9wvlgcetfeub9f11Z yum.repos.d]$ ll
total 16
-rw-r--r-- 1 root root 675 Nov 11 17:01 CentOS-Base.repo
-rw-r--r-- 1 root root 230 Nov 11 17:01 epel.repo
-rw-r--r-- 1 root root 1358 Sep 5 2021 epel.repo.rpmnew
-rw-r--r-- 1 root root 1457 Sep 5 2021 epel-testing.repo
5.卸载软件
sudo yum remove sl
下面这些命令通常一起使用,以确保软件包管理器的缓存是最新的,并且软件包是最新版本的。首先移除软件包,然后清理缓存,接着更新缓存,最后重新安装软件包。
sudo yum remove sl #移除软件包
sudo yum clean all #清除软件包缓存
sudo yum makecache #生成元数据缓存
sudo yum install sl #安装软件包
Linux开发工具:

二、Linux编辑器---vim
前面的学习,我们一直都是使用命令行模式来处理Linux系统的设置问题。但在Linux的系统中使用文本编辑器来编辑你的Linux参数配置文件,可是一件很重要的事情,也因此,系统管理员至少应该熟悉一种文本处理工具。在Linux命令行模式下的常听的文本编辑器就有emacs、pico、nano、joe和vim等。之前我们已经介绍的简单好用的nano,为什么还要学vim?
因为,所有的 UNIX-like 系统都会内置vi文本编译器,其他的文本编译器则不一定会存在;很多软件的编辑接口都是主动调用vi(之后会讲的crontab,visudo,edquota等命令)等优点。
那什么是vim?vi/vim的区别简单来说,它们都是多模式编译器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x windows、mac os、windows。
1.vim的基本概念
讲解vim的三种模式(其实有好多种模式,目前掌握这三种即可)分别是普通模式(command mode)、插入模式(insert mode)和 底行模式(last line mode)。
(1) 正常/普通模式(Normal mode)
以vim打开一个文件就直接默认是普通模式。在这个模式中,可以控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入insert mode模式下,或者last line mode。(帮助我们快速编辑)
(2) 插入模式(insert mode)
在普通模式下可以进行删除、复制、粘贴等操作,但是却无法编辑文件的内容,作文字的输入。要等到按下【i,I,o,O,a,A,r,R】等任何一个字母才能后才能进入编辑模式。通常在Linux中,界面左下方会出现【INSERT】或【REPLACE】等字样,才可以进行编辑。而要回到普通模式要按下【Esc】。
(3) 底行模式(last line mode)
在命令模式中输入【: / ?】三个中的任何一个按钮,就可以将光标移动到最下面那一行。该模式下,文件保存(w)或退出(q),也可以进行文件替换,找字符串,列出行号等操作。
(4) vim三种模式的相互关系

2.vim的简易执行范例
(1) 使用【vim filename】
【vim filename】进入vim全屏幕编辑画面,进入后,是处于[普通模式],要切换到[插入模式]才能够输入内容。整个界面分为两部分,上半部分与最下面一行可以视为独立的。上半部分展示的是文件的实际内容,最下面一行则是状态显示行,或命令执行行。
● 用vim创建一个新文件node.c
vim node.c
● 用vim打开一个已有文件
man printf > code.c
vim code.c

●【vim filename + num】
执行命令时加上数字,进入vim后光标位置就在所输数字行。
●【!v】
自动匹配上次执行过的v开头的命令
●【ctrl + r】
输入要查找的历史命令
(2) [正常模式]切换至[插入模式]
按下a,i,o等字符就可以从普通模式进入插入模式,在插入模式中,左下角会出现-INSERT-字样,键盘上出来【ESC】按键之外其他的按键都可以视为一般的输入按键,所以你可以进行任何编辑。
(3) [插入模式]切换至[正常模式]
按左上角的【ESC】即可。
(4) [正常模式]切换至[底行模式]
「shift + ;」, 其实就是输入「:」
(5) 退出vim环境
在 [普通模式下] 按「:」进入底行模式后,再输入下面所需要的命令:
w:保存当前文件
wq:存盘并退出vim
q!:不存盘强制退出vim
3.vim编辑模式命令集
(1) 移动光标
| h 或 ← | 光标左移一个字符 |
| j 或 ↓ | 光标下移一个字符 |
| k 或 ↑ | 光标上移一个字符 |
| l 或 → | 光标右移一个字符 |
| [ctrl] + [f] | 屏幕【向下】移动一页,相当于【pgdn】按键(常用) |
| [ctrl] + [b] | 屏幕【向上】移动一页,相当于【pgup】按键(常用) |
| [ctrl] + [d] | 屏幕【向下】移动半页 |
| [ctrl] + [u] | 屏幕【向上】移动半页 |
| 0 或 ^ 或 [Home] | 移动到这一行的最前字符串处(常用) |
| $ 或 [End] | 移动到这一行的最后字符(常用) |
| G | 移动到这个文件的最后一行(常用) |
| nG | n为数字,移动到这个文件的第n行 |
| gg | 移动到这个文件的第一行,相当于1G(常用) |
| w | 以单词为单位右移 |
| b | 以单词为单位左移 |
| n<Enter> | n为数字,光标向下移动n行(常用) |
(2) 查找与替换
| ~ | 切换光标位置大小写 |
| # | 选中单词 |
| n | n是英文按键,代表【重复上一个查找的操作】,向下查找 |
| N | N是英文按键,与n刚好相反,是【反向】查找 |
| /word | 向光标之下找一个名为word的字符串 |
| ?word | 向光标之上找一个名为word的字符串 |
#选中word(或/word)配合n及N是非常有帮助的,可重复的查找的关键单词
(3) 删除、复制与粘贴
| x 与 X | 在一行中,x为向后删除一个字符(相当于[del]),X为向后删除一个字符(相当于[Backspace])(常用) |
| nx | n为数字,连续向后删除n个字符 |
| dd | 剪切光标所在的那一整行(常用) |
| ndd | n为数字,剪切光标所在的向下n行(常用) |
| yy | 复制光标所在的那一行(常用) |
| nyy | n为数字,复制光标所在的向下n行(常用) |
| p 与 P | p为将已复制的数据在光标下一行粘贴,P为粘贴在光标的上一行(常用) |
| u | 撤销历史操作(常用) |
| [Ctrl] + r | 撤销u的操作(常用) |
| . | 小数点,重复上一个操作的含义(常用) |
注意:u 和 [Ctrl] + r 这两个操作一旦退出文件编辑就无法再撤销,但如果只是保存过没有退出文件就还能使用。
4.普通模式切换到编辑模式命令集
| i 与 I | 进入插入模式(Insert mode) i 为【从目前光标所在处插入】,I 为【在目前所在行的第一个非空空格符开始插入】(常用) |
| a 与 A | 进入插入模式(Insert mode) a 为【从目前光标所在的下一个字符处开始插入】,A 为【从光标所在行的最后一个字符处开始插入】(常用) |
| o 与 O | 进入插入模式(Insert mode) 这是英文字母的小写o,o 为【在目前光标所在的下一行处插入新的一行】,O 为【在目前光标所在处的上一行插入新的一行】(常用) |
| r 与 R | 进入替换模式(Replace mode) r 会【替换光标所在的那一个字符一次】,R 会【一直替换光标所在的文字(可移动)】,直到按下[Esc]为止(常用) |
| [Ctrl] + v | 进入可视化模式(Visual Block) 【可视区块,可以用矩形的方式选择数据】,光标移动过的位置就会反白(只能用hjkl移动光标)(常用) |
| [Esc] | 退出编辑模式,回到普通模式(常用) |
可视化模式举例:批量注释:
先【Ctrl + r】进入可视化模式,移动光标选择要注释的部分,再按【Ctrl + i】也就是【I】进入插入模式,输入【//】注释符,最后按【Esc】退出插入模式就实现了。
批量去掉注释:【Ctrl + r】进入可视化模式,选中注释符【//】,再按 d(删除)就完成去注释。
使用上面这些按键,再vim界面的左下角会出现【--INSERT--】,【--REPLACE--】,【--VISUAL-BLOCK--】的字样。
5.vim底行模式命令集
| :w | 将编辑的数据写入硬盘文件中 |
| :w! | 若文件属性是【只读】时,强制写入该文件。到底能不能写入,跟你对该文件的文件权限有关 |
| :q | 退出vim(常用) |
| :q! | 若曾修改过文件,又不想保存使用 ! 为强制退出不保存 |
| :wq | 保存后退出,若为 :wq! 则为强制保存后退出(常用) |
| ZZ | 快捷键,若文件没有被修改,则不保存退出;若文件已经被修改过,则保存退出 |
| :!command | 执行command命令,显示结果。 |
| :%s/x/y/ | 用 x 批量化替换 y |
| :vs dst.c | 纵向屏幕创建一个新窗口,打开的是名为dst.c的文件(可能是新建的)。([Ctrl] + ww 可以切换窗口) |
| :set nu | 显示行号,设置之后会在每一行的前缀显示该行的行号 |
| :set nonu | 与 set nu 相反,为取消行号 |
6.可视化模式(Visual Mode)
当我们按下v或V或[Ctrl] + v时,光标移动过的地方会反白
| v | 进入字符可视化模式(Character Visual Mode) 字符选择,会将光标经过过的地方会反白选择 |
| V | 进入行可视化模式(Line Visual Mode) 会将光标经过过的地方会反白选择 |
| [Ctrl] + v | 进入区块可视化模式(Block Visual Mode) 可以用矩形的方式选择数据(只能用hjkl控制移动) |
| y | 将反白的部分复制 |
| d | 将反白的地方删除 |
| p | 将刚刚复制的区块,在光标所在处粘贴 |

7.总结

8.简单配置vim
(1) 配置文件的位置
• 在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。• 而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如 /root目录下,通常已经存在一个.vimrc文件,如果不存在,则创建之。
下面是Vim 编辑器的配置文件和相关路径,这些文件和变量共同定义了 Vim 的行为和外观。用户可以通过修改 .vimrc 和 .exrc 文件来定制自己的 Vim 环境,而系统管理员可以通过修改 /etc/vimrc 文件来为所有用户提供统一的配置。
系统 vimrc 文件: "/etc/vimrc"用户 vimrc 文件: "$HOME/.vimrc"第二用户 vimrc 文件: "~/.vim/vimrc"用户 exrc 文件: "$HOME/.exrc"defaults file: "$VIMRUNTIME/defaults.vim"$VIM 预设值: "/etc"$VIMRUNTIME 预设值: "/usr/share/vim/vim81"
• 切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~• 打开自己目录下的.vimrc文件,执行 vim .vimrc(此时还是空文件)
(2) 常用配置选项用来测试
我们写入常用配置项,测试一下:
set nu "显示行号
syntax on "语法检验,颜色显示
set shiftwidth=4 "缩进空格数为4
set tabstop=4
set expandtabset autoindent "自动缩进
set showmode "显示左下角那一行状态
(3) 使用插件
要配置好看的vim,原生的配置可能功能不全,可以选择安装插件来完成配置,保证用户是你要配置的用户,然后:
安装 TagList 插件
- 下载
taglist_xx.zip文件。- 解压该文件。
- 将解压出来的
doc目录下的内容放到~/.vim/doc目录中。- 将解压出来的
plugin目录下的内容拷贝到~/.vim/plugin目录中。- 在
~/.vimrc文件中添加以下配置:vimlet Tlist_Show_One_File=1 let Tlist_Exit_OnlyWindow=1 let Tlist_Use_Right_Window=1- 重启 Vim。
安装 WinManager 插件
- 下载
winmanager.zip文件,确保是 2.X 版本以上。- 解压该文件。
- 将解压出来的
doc目录下的内容放到~/.vim/doc目录中。- 将解压出来的
plugin目录下的内容拷贝到~/.vim/plugin目录中。- 在
~/.vimrc文件中添加以下配置:vimlet g:winManagerWindowLayout=‘FileExplorer|TagList' nmap wm :WMToggle<cr>- 重启 Vim。
使用方法
- 打开
~/XXX.c或~/XXX.cpp文件。- 在普通模式(Normal mode)下输入
wm,你将看到下面文件浏览器和标签列表的效果。- 手把手教你把Vim改装成一个IDE编程环境(图文)_vim 打造成 ide-CSDN博客
其他手册
- 要查看更多手册信息,请执行
vimtutor命令。请注意,上述步骤假设你已经有一定的 Vim 插件安装经验,并且你的 Vim 环境已经配置好了相应的路径。如果你在执行这些步骤时遇到任何问题,可能需要检查文件路径和权限设置是否正确。
(4) 一键式配置vim
目前只支持 Centos7 x86_64. 具体操作查看文档
VimForCpp: 快速将vim打造成c++ IDE
9.参考资料
GitHub - wsdjeg/vim-galore-zh_cn: Vim 从入门到精通
相关文章:
Linux软件包管理与Vim编辑器使用指南
目录 一、Linux软件包管理器yum 1.什么是软件包? 2.什么是软件包管理器? 3.查看软件包 4.安装软件 编辑 5.卸载软件 Linux开发工具: 二、Linux编辑器---vim 1.vim的基本概念 (1) 正常/普通模式(Normal mode࿰…...
每日一练 | 包过滤防火墙的工作原理
01 真题题目 包过滤防火墙对哪一层的数据报文进行检查? A. 应用层 B. 物理层 C. 网络层 D. 链路层 02 真题答案 C 03 答案解析 包过滤防火墙是一种基本的安全设备,它通过检查进出网络的数据包来决定是否允许该数据包通过。 这种类型的防火墙主要关注…...
AR眼镜方案_AR智能眼镜阵列/衍射光波导显示方案
在当今AR智能眼镜的发展中,显示和光学组件成为了技术攻坚的主要领域。由于这些组件的高制造难度和成本,其光学显示模块在整个设备的成本中约占40%。 采用光波导技术的AR眼镜显示方案,核心结构通常由光机、波导和耦合器组成。光机内的微型显示…...
SpringBoot(十九)创建多模块Springboot项目(完整版)
之前我有记录过一次SpringBoot多模块项目的搭建,但是那一次只是做了一个小小的测试。只是把各模块联通之后就结束了。 最近要增加业务开发,要将目前的单模块项目改成多模块项目,我就参照了一下我上次搭建的流程,发现总是有报错。上次搭建的比较顺利,很多细枝末节也没有仔细…...
Navicat 17 功能简介 | 单元格编辑器
Navicat 17 功能简介 | 单元格编辑器 本期,我们一起了解 Navicat 17 出色的数据操作功能的单元格编辑器。单元格编辑器支持文本、十六进制、图像和网页四种格式的数据编辑,位于底部的编辑器窗格,为你编辑更大容量的数据信息提供足够的显示和操…...
MySQL【四】
插入数据 向数据表中插入一行数据 INSERT|REPLACE INTO 表名[(字段列表)] VALUES(值列表); ########## 在s表中插入一条记录:学号为s011,姓名为李思,性别为默认值,计算机专业 ########## insert into s(sno,sname,dept)values(s011,李思,计…...
简单叙述 Spring Boot 启动过程
文章目录 1. 准备阶段:应用启动的入口2. 创建 SpringApplication 对象:开始启动工作3. 配置环境(Environment):识别开发环境与生产环境4. 启动监听器和初始化器:感知启动的关键事件5. 创建 ApplicationCont…...
微信小程序自定义tabbar;禁用某个tab;修改某个tab的样式
微信小程序自定义tabbar;禁用某个tab;修改某个tab的样式 原本使用本身的tabBar就已经很舒服了,很合适了的,但是总有一些脑洞大开的产品和客户,给你搞点多样式,没办法牛马就得去做咯,现在就给大…...
力扣113:路径总和II
给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum 22 输出&a…...
JavaScript字符串常用方法
在JavaScript中,字符串是用来表示文本数据的基本数据类型。字符串可以用单引号()、双引号(")、或反引号()包裹。JavaScript中的字符串是不可变的,也就是说,字符串的值一旦创建就无法更改,但可以创建新字符串来替换原有字符串…...
xtu oj 加一
样例输入# 2 4 1 2 3 4 4 3 2 4 1样例输出# 3 5 解题思路:最小操作次数一定是把所有数变成数组中最大值max。 1、找最大值,一开始我把max初始值设为0,如果a[i]>max,maxa[i],WA了。又看了一遍题目,发现所有整数的绝对值小于…...
QTcpSocket 服务端和客户端
前提: pro文件中添加 QT network 服务端主要采用信号槽机制,代码如如下 核心代码头文件#ifndef TCPSERVER_H #define TCPSERVER_H#include <QObject>#include <QTcpServer> #include <QTcpSocket> #include <QDebug> #inclu…...
Isaac Sim+SKRL机器人并行强化学习
目录 Isaac Sim介绍 OmniIssacGymEnvs安装 SKRL安装与测试 基于UR5的机械臂Reach强化学习测评 机器人控制 OMNI GYM环境编写 SKRL运行文件 训练结果与速度对比 结果分析 运行体验与建议 Isaac Sim介绍 Isaac Sim是英伟达出的一款机器人仿真平台,适用于做机…...
项目中用户数据获取遇到bug
项目跟练的时候 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading ‘code’) at Proxy.userInfo (user.ts:57:17) 因此我想要用result接受信息的时候会出错,报错显示为result.code没有该值 导致我无法获取到相应的数据 解决如下 给…...
SpringSecurity+jwt+captcha登录认证授权总结
SpringSecurityjwtcaptcha登录认证授权总结 版本信息: springboot 3.2.0、springSecurity 6.2.0、mybatis-plus 3.5.5 认证授权思路和流程: 未携带token,访问登录接口: 1、用户登录携带账号密码 2、请求到达自定义Filter&am…...
项目技术栈-解决方案-web3去中心化
web3去中心化 Web3 DApp区块链:钱包:智能合约:UI:ETH系开发技能树DeFi应用 去中心化金融P2P 去中心化网络参考Web3 DApp 区块链: 以以太坊(Ethereum)为主流,也包括Solana、Aptos等其他非EVM链。 区块链本身是软件,需要运行在一系列节点上,这些节点组成P2P网络或者半…...
【AI声音克隆整合包及教程】第二代GPT-SoVITS V2:创新与应用
一、引言 随着科技的迅猛发展,声音克隆技术已经成为一个炙手可热的研究领域。SoVITS(Sound Voice Intelligent Transfer System),作为该领域的先锋,凭借其卓越的性能和广泛的适用性,正在为多个行业带来前所…...
分清数据链路层、网络层、传输层的区别,以及这些层面的代表协议
目录 数据链路层 网络层 传输层 数据链路层 OSI模型的第二层,负责在相邻节点之间传输帧,处理帧的封装、地址、差错控制和流量控制等。确保数据在物理介质上可靠地传输,并为上层协议提供服务。 以太网(Ethernet)&…...
git没有识别出大写字母改成小写重命名的文件目录
Git 默认不会跟踪大写字母和小写字母的区别,因为在大多数文件系统中,大写字母和小写字母被认为是相同的文件,只有在区分大小写的文件系统中(如 macOS 的 HFS 或 Windows 的 NTFS),这才是一个问题。 如果重命…...
自己动手写Qt Creator插件
文章目录 前言一、环境准备1.先看自己的Qt Creator IDE的版本2.下载源码 二、使用步骤1.参考原本的插件2.编写自定义插件1.cmakelist增加一个模块2.同理,qbs文件也增加一个3.插件源码 三、效果总结 前言 就目前而言,Qt Creator这个IDE,插件比…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...
视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...

