当前位置: 首页 > news >正文

【Linux系统】—— vim 的使用

【Linux系统】—— vim 的使用

  • 1 vim 的基本概念
  • 2 vim 的多模式
  • 3 命令模式下的命令集
    • 3.1 进入/退出其他模式
    • 3.2 光标移动命令集
    • 3.3 复制/剪切/粘贴/删除命令集
    • 3.4 撤销命令集
    • 3.5 查找命令集
    • 3.6 替换命令集
    • 3.7 进入与退出替换模式
  • 4 批量化编译
  • 5 底行模式
  • 6 vim 小技巧
  • 7 vim简单配置

1 vim 的基本概念

  vi/vim 的区别简单点来说,它们都是多模式编辑器,不同的是 vim 是 vi 的升级版本,它不仅兼容 vi 的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、windows。本文统一按照 vim 来进行讲解。

在这里插入图片描述

  
  

2 vim 的多模式

  vim 有多种模式,本文介绍五种模式,我们主要掌握的是以下三种:命令模式(command mode)、插入模式(Insert mode)、底行模式(last line mode)

各个模式的功能区分如下;

  • 命令(正常/普通)模式(Normal mode)
    • 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式下,或者到底行模式。
  • 插入模式(Insert mode)
    • 只有在插入模式下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
  • 底行模式(last line mode)
    • 文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,「shift 」+ 「 : 」即可进入该模式。要查看你的所有模式:打开 vim,底行模式直接输入 :help vim-modes

  

在这里插入图片描述

  
  

3 命令模式下的命令集

  我们打开 vim 编辑器,默认所处的模式就是命令模式
  在命令模式下,用户可以输入各种命令来执行不同的编辑操作,如移动光标、复制粘贴文本、删除文本、撤销操作等。这些命令通常是通过键盘上的快捷键来实现的,使得用户可以快速高效地进行文本编辑。
  这也是为什么我们一打开 vim 输入代码,vim 却没反应,因为命令模式下输入的所有东西都被认为是命令

  命令模式的核心作用就是帮助我们快速编辑
  

3.1 进入/退出其他模式

  命令模式是所有模式的纽带,从一个模式转换至另一个模式往往需要从旧模式退回至命令模式,再从命令模式进入新模式。

  • 「i」:进入插入模式「insert mode」,按 “i” 进入插入模式后是从光标当前位置开始输入文字;
  • 「a」:进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
  • 「o」:进入插入模式后,是插入新的一行,从行首开始输入文字。
  • 「 : 」:进入底行模式
  • 「R」:进入替换模式
  • 「ctrl」+「v」:进入视图模式
  • 「esc」:从任何模式退回命令模式

  小贴士:在 vim 中,当你不知道自己处于什么模式时,无脑按「esc」退回到命令模式。

  

3.2 光标移动命令集

  在 vim 中,光标可是一个很重要的概念,因为光标在哪里就表示你在哪进行编辑,下面我们就来学习如何快速移动光标


  • 「gg」:光标跳转至文本开始
  • 「G」:光标跳转至文本结尾
  • 「数字n」 + 「 G」:光标跳转至文本第 n 行

  • 「$」:光标跳转至所在行行末
  • 「^」:光标跳转至所在行行首
  • 「数字n」 + 「 $ 」:从光标所在行开始计算,光标移动到的第n行的行尾
  • 「数字n」 + 「 ^ 」:移动到光标所在行的第 n 个字符

  • 「h」/「j」/「k」/「l」:分别控制光标左、下、上、右移一格(上下左右键也可,但是 h j k l 更加规范)
  • 「数字n」 + 「h」/「j」/「k」/「l」:分别控制光标向左、下、上、有移动 n 格

  • 「w」:光标跳到下一个单词开头
  • 「b」:光标跳到上一个单词开头
  • 「e」:光标跳到下一个单词结尾
  • 「数字n」 + 「w」:光标向右跳过 n 个单词,跳到单词开头
  • 「数字n」 + 「b」:光标向左跳过 n 个单词,跳到单词开头
  • 「数字n」 + 「e」:光标向右跳过 n 个单词,跳到单词结尾

  • 「ctrl」+「b」:屏幕往“后”移动一页
  • 「ctrl」+「f」:屏幕往“前”移动一页
  • 「ctrl」+「u」:屏幕往“后”移动半页
  • 「ctrl」+「d」:屏幕往“前”移动半页

  小贴士:与光标有关的命令大多都可以加上数字,当觉得该指令光标移动太慢时,可以试着加上数字。

  

3.3 复制/剪切/粘贴/删除命令集

  • 「yy」:复制当前行
  • 「p」:在光标所在的下一行进行粘贴
  • 「数字n」 + 「 yy 」:复制从光标所在行开始向下数共n行。
  • 「数字n」 + 「 p」:在光标所在的下一行开始粘贴 n 次

  • 「dd」:剪切当前行
  • 「p」:在光标所在的下一行进行粘贴
  • 「数字n」 + 「 dd 」:剪切从光标所在行开始向下数共n行。
  • 「数字n」 + 「 p」:在光标所在的下一行开始粘贴 n 次

  • 「dd」:删除当前行
  • 「数字n」 + 「 dd 」:删除从光标所在行开始向下数共n行。

  • 「x」:每按一次,删除光标所在位置的字符
  • 「数字n」 + 「 x 」:删除光标所在位置之后的n的字符
  • 「X」:每按一次,删除光标所在位置前一个的字符
  • 「数字n」 + 「 X 」:删除光标所在位置之前的n的字符
  • 「p」:在光标所在位置进行粘贴

  从上述的命令也可以看出,我们平时所说的删除在 vim 中并不是直接删除,它会将删除的内容放在一个缓冲区,按 「p」 还可以再次将他们显现出来

  

3.4 撤销命令集

  • 「u」:撤销历史操作
  • 「ctrl」+「r」:撤销「u」操作

  一旦退出文件编辑,无法再进行撤销了。但如果只是保存,没有退出文件编辑,可以撤销
  

3.5 查找命令集

  • 「#」:查找光标所在位置的单词,按 「n」 向上跳转至上一个单词

  

3.6 替换命令集

  • 「r」 + 「指定字符#」:将光标所在处的字符替换为#
  • 「数字n」 + 「 r 」 + 「指定字符#」:将光标所在处开始的n个字符替换为#

  • 「~」:将小写字母替换为大写字母,将大写字母切换为小写字母;即大小写切换

  

3.7 进入与退出替换模式

  • 「R」 :进入替换模式,在替换模式下,输入的内容以覆盖式的形式输入,即可完成替换
  • 「esc」 :退出替换模式,回到命令模式
R
esc
命令模式
替换模式

  
  

4 批量化编译

  如果想对代码进行批量化编译,比如对代码进行批量化注释,我们要在插入模式下要一行行加 “//”,难免太过繁琐。我们可以利用视图模式进行批量化注释
  


进入与退出视图模式:

  • 「ctrl」+「v」:进入视图模式
  • 「esc」 :退出视图模式,回到命令模式
ctrl + v
esc
命令模式
视图模式

  


批量化编译步骤:

  • 「ctrl 」+ 「v」 进入视图模式
  • 进行区域选择,此时前面学习的命令都可以用,如:「h」/「j」/「k」/「l」、「数字n」+「 G」
  • 进入插入模式,按 「shift」+「i」(「I」) 可直接从视图模式进如插入模式
  • 进行编辑,如:想批量化注释就在该行前面输入"//"
  • 按「esc」返回命令模式
  • 完成批量化编译

  

ctrl + v
相应指令
I
esc
命令模式
视图模式
进行区域选择
进入插入模式
编辑代码
回到命令模式
完成代码的批量化编辑

  

动图演示:
  在这里插入图片描述

  


批量化删除:

  • 「ctrl 」+ 「v」 进入视图模式
  • 进行区域选择,此时前面学习的命令都可以用,如:「h」/「j」/「k」/「l」、「数字n」+「 G」
  • 「d」 进行删除
  • 完成批量化删除

  

ctrl + v
相应指令
命令模式
视图模式
进行区域选择
进行删除
完成代码的批量化编辑

  

动图演示:

在这里插入图片描述

  
  

5 底行模式

进入与退出底行模式:

  • 「 :」:进入底行模式
  • 「esc」 :退出底行模式,回到命令模式
:
esc
命令模式
底行模式

  


保存退出:

  • 「w」:保存文件
  • 「q」:退出vim,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim
  • 「wq」:保存并退出vim,后面可以加「!」表示强制

执行外部命令:

  • 「!」+「(Linux)命令」:在不退出vim的情况下执行相应命令。执行完后按任意键继续

批量化替换:

  • 「%s」 +「/」+「dst」+「/」+「src」+「/」:将dst批量化替换成src

显示行号:

  • 「set nu」:显示行号

查找:

  • 「/」+「关键字」:查找你想要的字符,如果第一次不是你想要的,可以一直按==「n」==往后继续查找
  • 「?」+==「关键字」查找你想要的字符,如果第一次不是你想要的,可以一直按「n」==往前继续查找

  

  「vs」 + 「目标文件」:在不关闭当前文件的前提下打开目标文件,进入分屏操作
  在这里插入图片描述
  分屏可以分多屏
  进入分屏模式后;光标在哪个窗口下,表示我们正在操作哪一个窗口

  • 「ctrl」 + 「ww」光标跳转至下一个窗口

  
  

6 vim 小技巧

  • 可以用 vim 直接打开一个新文件,打开新文件后什么都不写直接退出,该文件不会被创建;打开文件后什么都不写,保存退出,该文件会被创建
  • 用 vim 打开文件时,光标自动定位到上一次退出时光标所在位置
  • 用 vim 打开文件时,可以在后面加上==「+行号」==,可将光标直接定位到该行
    • 例如:提示22行代码有错误,我们可以用这个小技巧直接跳转到22行

在这里插入图片描述

  
  

7 vim简单配置

  .vimrc是 vim 的配置文件,启动 vim 时,都会先执行 .vimrc 的文件。我们可以通过修改 .vimrc 文件来对vim进行简单的配置

  在目录 /etc/ 下面,有个名为 vimrc 的文件,这是系统中公共的 vim 配置文件,对所有用户都有效。

  但这里建议不要修改根目录下的 vimrc 文件,修改根目录下的 vimrc 文件会在全局生效,相当于这台机器所有用户都用这个配置
  做vim配置,我们推荐只在自己用户下配置,只配置自己的vim。我们可以在自己用户的家目录下建立私有的配置文件,命名为:.vimrc

常用配置选项:

  • 显示行号:set nu
  • 设置语法高亮: syntax on
  • 设置缩进的空格数为4: set shiftwidth=4

  
  
  
  


  好啦,本期关于vim的使用就介绍到这里啦,希望本期博客能对你有所帮助。同时,如果有错误的地方请多多指正,让我们在 Linux 的学习路上一起进步!

相关文章:

【Linux系统】—— vim 的使用

【Linux系统】—— vim 的使用 1 vim 的基本概念2 vim 的多模式3 命令模式下的命令集3.1 进入/退出其他模式3.2 光标移动命令集3.3 复制/剪切/粘贴/删除命令集3.4 撤销命令集3.5 查找命令集3.6 替换命令集3.7 进入与退出替换模式 4 批量化编译5 底行模式6 vim 小技巧7 vim简单配…...

华为C语言编程规范总结

1.头文件更改会导致所有直接或间接包含该头文件的的C文件重新编译,会增加大量编译工作量,延长编译时间,因此: 1.1 头文件里尽量少包含头文件 1.2 头文件应向稳定的方向包含 2.每一个.c文件应有一个同名.h文件&#xff0c…...

深入学习 Python 量化编程

深入学习 Python 量化编程 第一章:Python 基础与量化编程环境搭建 1.1 安装必要的库 首先,你需要安装一些在量化编程中常用的 Python 库。可以通过以下命令安装这些库: pip install numpy pandas matplotlib yfinance backtrader scikit-…...

初识Java3

目录 一.面向对象与面向过程编程区别 二.类 1.类的定义 2.类一般格式 3.类的实例化具体对象 4.this的使用(习惯经常用) 5.this引用 三.对象 1.初始化对象方法 2.构造方法 四.封装 1.封装: 2.拓展“包” (1).包概念 &#xff08…...

uniapp 微信小程序内嵌h5实时通信

描述: 小程序webview内嵌的h5需要向小程序实时发送消息,有人说postMessage可以实现,所以试验一下,结果是实现不了实时,只能在特定时机后退、组件销毁、分享时小程序才能接收到信息(小程序为了安全等考虑做了…...

Blazor开发复杂信息管理系统的优势

随着现代企业信息管理需求的不断提升,开发高效、易维护、可扩展的系统变得尤为重要。在这个过程中,Blazor作为一种新兴的Web开发框架,因其独特的优势,逐渐成为开发复杂信息管理系统的首选技术之一。本文将结合Blazor在开发复杂信息…...

【微服务】面试题 5、分布式系统理论:CAP 与 BASE 详解

分布式系统理论:CAP 与 BASE 详解 一、CAP 定理 背景与定义:1998 年由加州大学科学家埃里克布鲁尔提出,分布式系统存在一致性(Consistency)、可用性(Availability)、分区容错性(Part…...

<论文>时序大模型如何应用于金融领域?

一、摘要 本文介绍2024年的论文《Financial Fine-tuning a Large Time Series Model》,论文探索了主流的时间序列大模型在金融领域的微调应用实践,为时序大模型的领域微调提供了参考。 译文: 大型模型在自然语言处理、图像生成以及近期的时间…...

Oracle 表分区简介

目录 一. 前置知识1.1 什么是表分区1.2 表分区的优势1.3 表分区的使用条件 二. 表分区的方法2.1 范围分区(Range Partitioning)2.2 列表分区(List Partitioning)2.3 哈希分区(Hash Partitioning)2.4 复合分…...

安卓硬件加速hwui

安卓硬件加速 本文基于安卓11。 从 Android 3.0 (API 级别 11) 开始,Android 2D 渲染管道支持硬件加速,这意味着在 View 的画布上执行的所有绘图操作都使用 GPU。由于启用硬件加速所需的资源增加,你的应用程序将消耗更多内存。 软件绘制&am…...

【Bluedroid】HFP连接流程源码分析(二)

接上一篇【Bluedroid】HFP连接流程源码分析(一)-CSDN博客分析。本篇主要围绕RFCOMM Connect 与 RFCOMM UA Frame 的处理流程来展开分析。 RFCOMM Connect RFCOMM(Radio Frequency Communication)作为蓝牙协议栈的关键部分&#…...

基于文件系统分布式锁原理

分布式锁:在一个公共的存储服务上打上一个标记,如Redis的setnx命令,是先到先得方式获得锁,ZooKeeper有点像下面的demo,比较大小的方式判决谁获得锁。 package com.ldj.mybatisflex.demo;import java.util.*; import java.util.co…...

java语法知识(二)

1. class文件可以直接拖动到idea中,显示源码。 2.idea快捷键: sout : System.out.println 输出内容.sout :---》 System.out.println(输出内容); psvm: public static void main() 格式化:ctrl altL 复制粘贴:ctrld 3.注释…...

基于Piquasso的光量子计算机的模拟与编程

一、引言 在科技飞速发展的当下,量子计算作为前沿领域,正以前所未有的态势蓬勃崛起。它凭借独特的量子力学原理,为解决诸多经典计算难以攻克的复杂问题提供了全新路径。从优化物流配送网络,以实现资源高效调配,到药物分子结构的精准模拟,加速新药研发进程;从金融风险的…...

导出文件,能够导出但是文件打不开

背景: 在项目开发中,对于列表的查询,而后会有导出功能,这里导出的是一个excell表格。实现了两种,1.导出的文件,命名是前端传输过去的;2.导出的文件,命名是根据后端返回的文件名获取的…...

【动手学电机驱动】STM32-FOC(4)STM32之UART 串口通信

STM32-FOC(1)STM32 电机控制的软件开发环境 STM32-FOC(2)STM32 导入和创建项目 STM32-FOC(3)STM32 三路互补 PWM 输出 STM32-FOC(4)STM32之UART 串口通信 STM32-FOC(6&am…...

RabbitMQ 高可用方案:原理、构建与运维全解析

文章目录 前言:1 集群方案的原理2 RabbitMQ高可用集群相关概念2.1 设计集群的目的2.2 集群配置方式2.3 节点类型 3 集群架构3.1 为什么使用集群3.2 集群的特点3.3 集群异常处理3.4 普通集群模式3.5 镜像集群模式 前言: 在实际生产中,RabbitM…...

Center Loss 和 ArcFace Loss 笔记

一、Center Loss 1. 定义 Center Loss 旨在最小化类内特征的离散程度,通过约束样本特征与其类别中心之间的距离,提高类内特征的聚合性。 2. 公式 对于样本 xi​ 和其类别yi​,Center Loss 的公式为: xi​: 当前样本的特征向量&…...

深度解读微软Speech服务:让语音识别走进现实

大家好,今天我们来探讨一个激动人心的技术话题:微软的语音识别服务如何为我们提供强大的语音识别解决方案,特别是在电话录音中识别出不同的说话人。 场景描绘 想象一下,你有一段电话录音,并需要将其中的多个说话人区分…...

第21篇 基于ARM A9处理器用汇编语言实现中断<三>

Q:怎样编写ARM A9处理器汇编语言代码配置按键端口产生中断? A:使用Intel Monitor Program创建中断程序时,Linker Section Presets下拉菜单中需选择Exceptions。主程序在.vectors代码段为ARM处理器设置异常向量表,在…...

专题 - STM32

基础 基础知识 STM所有产品线(列举型号): STM产品的3内核架构(列举ARM芯片架构): STM32的3开发方式: STM32的5开发工具和套件: 若要在电脑上直接硬件级调试STM32设备,则…...

极客说|Azure AI Agent Service 结合 AutoGen/Semantic Kernel 构建多智能体解决⽅案

作者:卢建晖 - 微软高级云技术布道师 「极客说」 是一档专注 AI 时代开发者分享的专栏,我们邀请来自微软以及技术社区专家,带来最前沿的技术干货与实践经验。在这里,您将看到深度教程、最佳实践和创新解决方案。关注「极客说」&am…...

【C++指南】模板 深度解析

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《C指南》 期待您的关注 目录 1. 引言 2. 模板的基本概念 3. 函数模板 3.1 定义和语法 3.2 函数模板实例化 3.3 隐式实例化 …...

【traefik】forwadAuth中间件跨namespace请求的问题

前情提要 - fowardAuth鉴权中间件的使用: 【traefik】使用forwardAuth中间件做网关层的全局鉴权 1. 问题 我的 traefik-ingress-controller 所在 namespace: traefik 业务服务所在 namespace: apps 路由与 forwardAuth 中间件配置如下: # 路由 apiV…...

【25考研】西南交通大学软件工程复试攻略!

一、复试内容 复试对考生的既往学业情况、外语听说交流能力、专业素质和科研创新能力,以及综合素质和一贯表现等进行全面考查,主要考核内容包括思想政治素质和道德品质、外语听说能力、专业素质和能力,综合素质及能力。考核由上机考试和面试两部分组成&a…...

在 Safari 浏览器中,快速将页面恢复到 100% 缩放(也就是默认尺寸)Command (⌘) + 0 (零)

在 Safari 浏览器中,没有一个专门的快捷键可以将页面恢复到默认的缩放比例。 但是,你可以使用以下两种方法快速将页面恢复到 100% 缩放(也就是默认尺寸): 方法一:使用快捷键 (最常用) Command (⌘) 0 (零…...

linux的大内核锁与顺序锁

大内核锁 Linux大内核锁(Big Kernel Lock,BKL)是Linux内核中的一种锁机制,用于保护内核资源,以下是关于它的详细介绍: 概念与作用 大内核锁是一种全局的互斥锁,在同一时刻只允许一个进程访问…...

CVE-2025-22777 (CVSS 9.8):WordPress | GiveWP 插件的严重漏洞

漏洞描述 GiveWP 插件中发现了一个严重漏洞,该插件是 WordPress 最广泛使用的在线捐赠和筹款工具之一。该漏洞的编号为 CVE-2025-22777,CVSS 评分为 9.8,表明其严重性。 GiveWP 插件拥有超过 100,000 个活跃安装,为全球无数捐赠平…...

牛客周赛 Round 76题解

小红出题 思路&#xff1a;我们发现&#xff0c;每七天可以获得15元&#xff0c;那么我们可以对7取模&#xff0c;看能有多少7的倍数&#xff0c;然后剩下的就是看是否超过5&#xff0c;超过5就直接15&#xff0c;否则加上天数*3 #include<bits/stdc.h> using namespace…...

【ARM】MDK如何将变量存储到指定内存地址

1、 文档目标 通过MDK的工程配置&#xff0c;将指定的变量存储到指定的内存地址上。 2、 问题场景 在项目工程的开发过程中&#xff0c;对于flash要进行分区&#xff0c;需要规划出一个特定的内存区域来存储变量。 3、软硬件环境 1&#xff09;、软件版本&#xff1a;MDK 5.…...

解决在arm架构下的欧拉操作系统mysql8.4.2源码安装

目标&#xff1a;在欧拉的22.03 (LTS-SP4)版本操作系统&#xff0c;cpu的架构为ARM&#xff0c;源码安装mysql-8.4.2。 1.查看操作系统 # cat /etc/os-release NAME"openEuler" VERSION"22.03 (LTS-SP4)"# uname -i aarch642.mysql下载地址 mysql的下载…...

SpringAop

SpringAop aop定义核心概念aop基础实现执行流程 aop进阶通知类型切入点表达式的抽取通知的执行顺序切入点表达式execution方式实现annotation注解方式实现示例 笔记链接 aop定义 AOP&#xff1a;Aspect Oriented Programming&#xff08;面向切面编程、面向方面编程&#xff09…...

C++内存泄露排查

内存泄漏是指程序动态分配的内存未能及时释放&#xff0c;导致系统内存逐渐耗尽&#xff0c;最终可能造成程序崩溃或性能下降。在C中&#xff0c;内存泄漏通常发生在使用new或malloc等分配内存的操作时&#xff0c;但没有正确地使用delete或free来释放这块内存。 在日常开发过程…...

Cesium小知识:pointPrimitive collection 详解

Cesium.PointPrimitiveCollection 是 Cesium 中用于高效管理和渲染大量点(points)的一个类。它允许你创建和管理大量的 PointPrimitive 实例,这些实例可以用来表示地理空间中的点数据,如传感器位置、车辆位置、兴趣点等。与直接使用 Cesium.Entity 相比,PointPrimitiveCol…...

从 Conda 到 Pip-tools:Python 依赖管理全景探索20250113

从 Conda 到 Pip-tools&#xff1a;Python 依赖管理全景探索 引言 在 Python 开发中&#xff0c;依赖管理是一个"常见但复杂"的问题&#xff1a;一次简单的版本冲突可能让团队调试数小时&#xff1b;一次不受控的依赖升级可能让生产环境瘫痪。随着项目规模的增加和…...

浅谈云计算01 | 云计算服务的特点

在当今数字化时代&#xff0c;云计算作为一种强大的技术解决方案&#xff0c;正逐渐改变着企业和个人对信息技术的使用方式。本文将详细探讨云计算的五个主要特点&#xff0c;包括按需自助服务、广泛的网络接入、资源池化、快速弹性伸缩以及可计量服务。 一、按需自助服务 云…...

2025年,华为认证HCIA、HCIP、HCIE 该如何选择?

眼看都到 2025 年啦&#xff0c;华为认证还吃香不&#xff1f; 把这问题摆在每个网络工程师跟前&#xff0c;答案可没那么容易说清楚。 到底考不考它值当不值当&#xff0c;重点在于您自己的职业规划&#xff0c;还有对行业走向的领会。 2025 年华为认证仍然值得一考&#…...

使用Selenium进行网页自动化测试

在使用Selenium进行网页自动化测试时&#xff0c;获取网络请求数据&#xff08;即network数据&#xff09;并不直接由Selenium库提供。Selenium主要用于与网页内容进行交互&#xff08;如点击、输入文本、获取页面元素等&#xff09;&#xff0c;但它本身不拦截或记录网络请求。…...

Linux 下 mtrace 的详细介绍

在 Linux 系统中&#xff0c;内存管理是操作系统的一项重要任务&#xff0c;而内存泄漏&#xff08;Memory Leak&#xff09;是开发过程中常见且棘手的问题之一。为了帮助开发者追踪和调试内存泄漏问题&#xff0c;mtrace 提供了一种有效的方式来检测和分析内存的分配与释放情况…...

【DB-GPT】开启数据库交互新篇章的技术探索与实践

一、引言&#xff1a;AI原生数据应用开发的挑战与机遇 在数字化转型的浪潮中&#xff0c;企业对于智能化应用的需求日益增长。然而&#xff0c;传统的数据应用开发方式面临着诸多挑战&#xff0c;如技术栈复杂、开发周期长、成本高昂、难以维护等。这些问题限制了智能化应用的…...

深入 Flutter 和 Compose 在 UI 渲染刷新时 Diff 实现对比

众所周知&#xff0c;不管是什么框架&#xff0c;在前端 UI 渲染时&#xff0c;都会有构造出一套相关的渲染树&#xff0c;并且在 UI 更新时&#xff0c;为了尽可能提高性能&#xff0c;一般都只会进行「差异化」更新&#xff0c;而不是对整个 UI Tree 进行刷新&#xff0c;所以…...

Android 网络层相关介绍

关注 Android 默认支持的网络管理行为,默认支持的网络服务功能。 功能术语 术语缩写全称释义DHCPv6Dynamic Host Configuration Protocol for IPv6动态主机配置协议的第六版,用于在IPv6网络中动态分配IP地址和其他网络配置参数。DNS Domain Name System域名系统。LLALink-Loc…...

ThreeJs开发环境安装与首个DEMO

安装开发环境 我这边使用的JetBrain的WebStorm&#xff0c;咨询过很多其他开发从业者&#xff0c;普遍使用vscode的比较多。但是考虑到vscode涉及到不少插件安装和IDE配置&#xff0c;作为傻瓜式入门&#xff0c;我这边采用WebStorm。 下载地址&#xff1a; WebStorm: The J…...

【Vim Masterclass 笔记09】S06L22:Vim 核心操作训练之 —— 文本的搜索、查找与替换操作(第一部分)

文章目录 S06L22 Search, Find, and Replace - Part One1 从光标位置起&#xff0c;正向定位到当前行的首个字符 b2 从光标位置起&#xff0c;反向查找某个字符3 重复上一次字符查找操作4 定位到目标字符的前一个字符5 单字符查找与 Vim 命令的组合6 跨行查找某字符串7 Vim 的增…...

js:根据后端返回数据的最大值进行计算然后设置这个最大值为百分之百,其他的值除这个最大值

问&#xff1a; 现在tabData.value 接收到了后端返回的数据&#xff0c; [{text:人力,percentage&#xff1a;‘90’}&#xff0c;{text:物品,percentage&#xff1a;‘20’}&#xff0c;{text:物理,percentage&#xff1a;‘50’}&#xff0c;{text:服务,percentage&#xff…...

线形回归与小批量梯度下降实例

1、准备数据集 import numpy as np import matplotlib.pyplot as pltfrom torch.utils.data import DataLoader from torch.utils.data import TensorDataset######################################################################### #################准备若干个随机的x和…...

【数学】概率论与数理统计(三)

文章目录 [toc] 随机变量的概念随机事件数量化随机变量 离散型随机变量及其概率分布随机变量的分类离散型随机变量离散型随机变量的常见分布两点分布二项分布泊松分布泊松定理证明 泊松分布 超几何分布几何分布 连续型随机变量及其概率分布连续型随机变量零概率事件几乎必然发生…...

如何在 Linux、MacOS 以及 Windows 中打开控制面板

控制面板不仅仅是一系列图标和菜单的集合&#xff1b;它是通往优化个人计算体验的大门。通过它&#xff0c;用户可以轻松调整从外观到性能的各种参数&#xff0c;确保他们的电脑能够完美地适应自己的需求。无论是想要提升系统安全性、管理硬件设备&#xff0c;还是简单地改变桌…...

《AI赋能鸿蒙Next,开启智能关卡设计新时代》

在游戏开发领域&#xff0c;关卡设计是至关重要的一环&#xff0c;它直接影响着玩家的游戏体验和沉浸感。而随着人工智能技术的飞速发展&#xff0c;结合鸿蒙Next系统的强大功能&#xff0c;为游戏的智能关卡设计带来了全新的思路和方法。 利用AI学习玩家行为模式 在鸿蒙Next…...

Safari浏览器上ico图标显示不出来,怎么解决?

Safari浏览器上ico图标显示不出来&#xff0c;怎么解决&#xff1f; 如果Safari浏览器上ico图标显示不出来了&#xff0c;如下图&#xff0c;该图标显示为灰色。 可以关闭Safari浏览器&#xff0c;并清除历史记录&#xff0c;就可以解决啦。 另外&#xff0c;如果多个网站这…...