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

Rstudio换皮:自定义彩虹括号与缩进线

更换主题

Rstudio还是R语言最好用的IDE,默认的Rstudio已经自带了很多主题,可以自由选择。

更换内置主题

• 操作路径:Tools → Global Options → Appearance

Editor Theme选项中切换主题,默认使用Textmate主题。RStudio提供多种内置浅色/深色主题,还支持切换界面风格(Modern/Sky/Classic)。

rstudio-themes

主页:https://github.com/max-alletsee/rstudio-themes

这是一个自定义Rstudio主题的集合,可为默认内置主题提供替代方案。在里面可以找到一个由用户创建的309个RSTUDIO主题的列表(251个黑暗主题,58个亮色主题)。

RStudio(1.20 及以上版本)支持自定义主题,可以通过以下方法安装并应用它们:

方法 1:手动安装(图形界面)

  1. 进入设置:
    工具(Tools) → 全局选项(Global Options) → 外观(Appearance)
  2. 点击 添加(Add...),选择下载好的 .rstheme 主题文件。
  3. 应用主题: 在主题列表中选中新安装的主题,点击 确定(OK) 即可生效。

方法 2:使用 rstudioapi 包(代码安装)
通过 rstudioapi::addTheme() 直接安装在线主题(需管理员权限):

# 安装 rstudioapi(如果未安装)
install.packages("rstudioapi")# 从 URL 安装主题(例如 Night Owlish 深色主题)
rstudioapi::addTheme("https://raw.githubusercontent.com/batpigandme/night-owlish/master/rstheme/night-owlish.rstheme",apply = TRUE  # 立即应用
)

方法 3:批量安装(使用 rstudio-themes 包)
通过 GitHub 仓库 max-alletsee/rstudio-themes 快速安装多个主题:

# 安装包
devtools::install_github("max-alletsee/rstudio-themes")
library(rstudiothemes)# 示例 1:批量安装所有浅色主题
install_rstudio_themes(theme = "all_light")# 示例 2:安装指定主题(如 Ayu Light 和 Github)
install_rstudio_themes(theme = c("Ayu Light", "Github {rsthemes}"))

自定义主题

RStudio从1.2版本开始支持用户自定义主题,提供了两种格式选择:tmTheme和rstheme。

  • tmTheme格式
    tmTheme是一种基于XML的主题描述格式,最初由TextMate文本编辑器引入。在RStudio中,当添加tmTheme文件时,系统会先将其转换为rstheme格式再保存到本地。

  • rstheme格式
    rstheme是基于CSS的主题格式,专为RStudio设计。虽然可以直接从头编写rstheme,但由于包含大量生成值,建议通过修改现有rstheme或从tmTheme转换而来。

创建tmTheme主题

创建新的tmTheme主题有两种方法:

  1. 使用专门的tmTheme编辑器(如https://tmtheme-editor.glitch.me/)
  2. 手动编写XML文件

RStudio仅支持特定的作用域(scope),以下是支持的作用域及其影响:

作用域描述
comment修改注释的颜色和样式
constant修改常量(如TRUE、FALSE和数字字面量)的颜色和样式
constant.language修改语言常量(如TRUE和FALSE)的颜色和样式,会覆盖"constant"作用域中的设置。在RMarkdown中,修改包围的内容
constant.numeric修改数字字面量的颜色和样式,会覆盖"constant"作用域中的设置。在RMarkdown中,修改包围的内容
keyword修改关键字(如function、if、else、stop和运算符)的颜色和样式
keyword.operator修改运算符(如(、)、=、+、-)的颜色和样式,会覆盖"keyword"作用域中的设置
marker-layer.active_debug_line修改当前调试代码行的高亮颜色和样式
markup.heading修改RMarkdown文档中标题起始字符的颜色和样式
meta.tag修改RMarkdown文档中元数据标签(如title)的颜色和样式
string修改字符串字面量的颜色和样式
support.function修改RMarkdown文档中代码块的颜色和样式

创建rstheme主题

创建rstheme主题的推荐方法:

  1. 先编写tmTheme并导入RStudio,然后修改生成的rstheme文件
  2. 复制现有rstheme并修改值

以下是rstheme中最相关的CSS选择器及其对应作用域:

选择器对应作用域描述
.ace_bracket-覆盖Ace提供的匹配括号高亮的默认样式
.ace_commentcomment修改注释的颜色和样式
.ace_constantconstant修改常量的颜色和样式
.ace_constant.ace_languageconstant.language修改语言常量的颜色和样式
.ace_constant.ace_numericconstant.numeric修改数字字面量的颜色和样式
.ace_cusor-修改编辑器窗口中文本光标的颜色和样式
.ace_editor-修改RStudio编辑器窗口的默认颜色和背景
.ace_gutter-修改左侧装订线(显示行号、断点和折叠控件)的颜色和样式
.ace_gutter-active_line-修改编辑器中活动行的装订线颜色和样式
.ace_heading-修改RMarkdown文档中标题的颜色和样式
.ace_indent-guide-修改缩进参考线的颜色和样式,可通过"全局选项 > 代码 > 显示 > 显示缩进参考线"启用/禁用
.ace_invisible-修改不可见字符的颜色和样式,可通过"全局选项 > 代码显示 > 显示空白字符"启用/禁用
.ace_keywordkeyword修改关键字的颜色和样式
.ace_keyword.ace_operatorkeyword.operator修改运算符的颜色和样式,会覆盖".ace_keyword"中的设置
.ace_meta.ace_tagmeta.tag修改RMarkdown文档中元数据标签(如title和output)的颜色和样式
.ace_marker-layer .ace_active-debug_linemarker-layer.active_debug_line修改当前调试代码行的高亮颜色和样式
.ace_marker-layer .ace_bracket-修改匹配括号的高亮颜色和样式
.ace_marker-layer .ace_selection-修改当前选中行或代码块的高亮颜色和样式
.ace_markup.ace_headingmarkup.heading修改RMarkdown文档中标题起始字符的颜色和样式
.ace_paren_color_0到.ace_paren_color_6-修改彩虹括号的颜色和样式
.ace_print-margin-修改行宽边距的颜色和样式,可通过"全局选项 > 代码 > 显示 > 显示边距"启用/禁用
.ace_selection.ace_start-修改当前选中代码块起始处的高亮颜色和样式
.ace_stringstring修改字符串字面量的颜色和样式
.ace_support.ace_functionsupport.function修改RMarkdown文档中代码块的颜色和样式

此外,还可以修改终端面板的样式(选择器包含.terminal或.xterm开头的),以及RStudio中与编辑器无关的部分(类名以rstheme_开头,除了dataGridHeader和themedPopupPanel)。

修改彩虹括号和缩进线

大概是从22年的版本开始Rstudio支持了彩虹括号和缩进线,可以帮助我们更清晰的看到代码结构。

  • 彩虹括号:Tools → Global Options → Code → Display → Use rainbow parentheses
  • 缩进指示:Tools → Global Options → Code → Display → indent guides

在活动文件中显示指示当前缩进列的元素
None: 不显示缩进参考元素
Gray lines: 以灰色线指示缩进
Rainbow lines: 以彩虹色线指示缩进
Rainbow fills: 以彩虹色填充指示缩进

都开启后如下图所示,但颜色可能不是特别明显:

如果我们想自行修改的话,最方便的方法还是基于一个已有的rstheme文件来修改,比如https://github.com/rstudio/rstudio/tree/main/src/cpp/session/resources/themes下面可以下载到Rstudio默认的所有theme文件,我一般用的是crimson_editor.rstheme 文件。

我们下载下来用文本编辑器打开,先修改第一行‘rs-theme-name: Crimson Editor’,改成其他名称如‘rs-theme-name: Crimson Editor2’,防止导入时覆盖错乱。然后可以根据上表的提示来修改对应的颜色,粗细,透明度等。

我想使用的是D3系列配色,彩虹括号颜色比较好修改,在文件中加入以下内容(注意如果已经定义了下列变量就进行替换)

/* 彩虹括号颜色 */
.ace_paren_color_0 { color: #1F77B4; }
.ace_paren_color_1 { color: #FF7F0E; }
.ace_paren_color_2 { color: #2CA02C; }
.ace_paren_color_3 { color: #D62728; }
.ace_paren_color_4 { color: #9467BD; }
.ace_paren_color_5 { color: #8C564B; }
.ace_paren_color_6 { color: #E377C2; }

改完后会发现缩进线的颜色会消失,我们需要再添加以下内容:

/* 彩虹缩进线(D3颜色) */
.rstudio_rainbow_indent_guides .ace_line .ace_indent-guide:nth-child(7n+1) {background: linear-gradient(to left, #1F77B4bb 1px, transparent 1px, transparent);
}
.rstudio_rainbow_indent_guides .ace_line .ace_indent-guide:nth-child(7n+2) {background: linear-gradient(to left, #FF7F0Ebb 1px, transparent 1px, transparent);
}
.rstudio_rainbow_indent_guides .ace_line .ace_indent-guide:nth-child(7n+3) {background: linear-gradient(to left, #2CA02Cbb 1px, transparent 1px, transparent);
}
.rstudio_rainbow_indent_guides .ace_line .ace_indent-guide:nth-child(7n+4) {background: linear-gradient(to left, #D62728bb 1px, transparent 1px, transparent);
}
.rstudio_rainbow_indent_guides .ace_line .ace_indent-guide:nth-child(7n+5) {background: linear-gradient(to left, #9467BDbb 1px, transparent 1px, transparent);
}
.rstudio_rainbow_indent_guides .ace_line .ace_indent-guide:nth-child(7n+6) {background: linear-gradient(to left, #8C564Bbb 1px, transparent 1px, transparent);
}
.rstudio_rainbow_indent_guides .ace_line .ace_indent-guide:nth-child(7n+7) {background: linear-gradient(to left, #E377C2bb 1px, transparent 1px, transparent);
}

随后将修改后的rstheme文件Add进去,点击Apply之后最终效果如下:

References

  1. https://r-coder.com/rstudio-themes/
  2. https://rstudio.github.io/rstudio-extensions/rstudio-theme-creation.html

相关文章:

Rstudio换皮:自定义彩虹括号与缩进线

更换主题 Rstudio还是R语言最好用的IDE,默认的Rstudio已经自带了很多主题,可以自由选择。 更换内置主题 • 操作路径:Tools → Global Options → Appearance 在Editor Theme选项中切换主题,默认使用Textmate主题。RStudio提供…...

基于springboot+vue的车票管理系统

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7数据库工具:Navicat12开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9 系统展示 用户管理 班次时…...

计算机组成与体系结构:Snooping-Based Protocols(监听式协议)

目录 什么是监听式协议? Snooping 的总线模型 两种写策略:Write Update vs. Write Invalidate 1️⃣ Write-Invalidate(写失效) 2️⃣ Write-Update(写更新) 🔍 操作流程分析 &#x1f5…...

CSS 浮动(Float)及其应用

1. 什么是浮动(Float)? 浮动元素会脱离正常的文档流(Document Flow),并向左或向右移动,直到碰到父元素的边缘或另一个浮动元素。 基本语法 .float-left {float: left; }.float-right {float:…...

离散文本表示

目录 一、离散文本表示的底层逻辑 二、One-hot 编码 (一)One-hot 编码的精妙机制 (二)One-hot 编码的优势与局限 三、词袋法(Bag of Words) (一)词袋法的核心思想 &#xff08…...

Python异常处理与OOP深度解析及实战案例

**导读:**在现代软件开发中,异常处理与面向对象编程(OOP)是构建健壮、可维护程序的两大基石。本文深入解析了 Python 中的异常处理机制和 OOP 编程的核心概念,并通过实战案例帮助你掌握这些技术的实际应用。 文章从异常…...

KnowCard:我的知识卡片生成器是怎么炼成的?

我正在参加CodeBuddy「首席试玩官」内容创作大赛,本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 起心动念:我想做个“笔记神器” 有时候,看着笔记本里密密麻麻的学习要点,我…...

JAVA EE(进阶)_进阶的开端

别放弃浸透泪水的昨天,晨光已为明天掀开新篇 ——陳長生. ❀主页:陳長生.-CSDN博客❀ 📕上一篇:JAVA EE_HTTP-CSDN博客 1.什么是Java EE Java EE(Java Pla…...

装甲PPT习题

装甲PPT习题 第一章 将 42.195 42.195 42.195, 0.0375551 0.0375551 0.0375551, 8.00033 8.00033 8.00033, 2.71828 2.71828 2.71828 按四舍五入写出上述各数具有四位有效数字的近似数。 考察三位有效数字重力加速度 g g g,若…...

EasyExcel动态表头

专家官方解答 : 在使用EasyExcel处理Excel动态表头的问题时,官方并不推荐使用includecolumnfieldnames方法。根据提供的知识内容,以下是如何实现动态表头的详细步骤和解释: 原因分析 动态表头的需求通常来源于希望根据用户的选…...

LoadBarWorks:一款赛博风加载动画生成器的构建旅程

我正在参加CodeBuddy「首席试玩官」内容创作大赛,本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 项目缘起:赛博与实用的结合 在日常开发中,我经常需要为不同的项目添加加载动画&#x…...

跨平台多用户环境下PDF表单“序列号生成的服务器端方案“

在PDF表单处理中,经常需要为每个表单生成唯一的序列号或表单编号。当所有表单都在同一台计算机上由同一用户处理时,可以通过JavaScript将编号存储在另一个表单或全局JavaScript数据中来实现。然而,当需要在多台计算机或多个用户环境中使用时&…...

二:操作系统之进程控制块(PCB)

进程的身份证与状态记录:深入理解进程控制块 (PCB) 在我们之前的博客中,我们探讨了进程是什么——程序的一次执行实例,以及进程在其生命周期中会经历的各种状态(新建、就绪、运行、等待、终止)。我们知道,…...

创建型:原型模式

目录 1、核心思想 2、实现方式 2.1 基本结构 2.2 代码示例(Java) 3、适用场景 4、new与clone实际场景建议 1、核心思想 目的:通过复制(克隆)现有对象来创建新对象,而不是通过new关键字实例化。对于那…...

从c++到python

从c到python 前言printprint格式化print按原始格式输出 input变量、常量和数据类型整型和type()浮点型复数字符串类型数据类型转换变量地址 注释关键字容器列表list下标索引常用功能 元组tuple字符串str字符串的成员函数:字符串初始化为几个固定字符字符和int型数据…...

仿腾讯会议——房间界面用户设置

1、房间界面设置 2、 添加新设计师界面类 3、设置用户设置 4、添加新类&&设置房间标题 5、设置控件 6、修改用户展示头文件 7、 设置用户名 8、客户端添加用户展示 9、测试数据 10、成功截图...

Vue+Go 自定义打字素材的打字网站

Typing_Key_Board 这是一个基于Vue 3和Go语言的自定义素材打字练习网站,灵感来源于常用字打字练习,解决了大多数网站无法自定义打字素材的问题。在 Typing_Key_Board (简称TKB)中,用户可以自定义打字素材进行练习,在复习代码的同…...

生产级编排AI工作流套件:Flyte全面使用指南 — Data input/output

生产级编排AI工作流套件:Flyte全面使用指南 — Data input/output Flyte 是一个开源编排器,用于构建生产级数据和机器学习流水线。它以 Kubernetes 作为底层平台,注重可扩展性和可重复性。借助 Flyte,用户团队可以使用 Python SDK…...

JUC入门(二)

5、8锁现象:就是关于锁的八个问题 谁来充当锁?要锁的是什么东西?这个锁有什么用? 其实锁的作用就是:哪个线程先拿到锁,谁就有先执行同步方法的权力 那么谁能充当锁?任何对象都可以充当锁 要…...

深入浅出:CPU寻址方式完全指南(从理论到实践)

引言:为什么需要寻址方式? 当我们写下一行高级语言代码(比如 int sum a b;),计算机底层是如何找到变量 a 和 b 的? 寻址方式(Addressing Modes) 就是 CPU 定位操作数的策略&#…...

PyQt5基本窗口控件(对话框类控件)

对话框类控件 QDialog 为了更好地实现人机交互,比如Windows及Linux等系统均会提供一系列的标 准对话框来完成特定场景下的功能,如选择字号大小、字体颜色等。在PyQt5中定 义了一系列的标准对话框类,让使用者能够方便和快捷地通过各个类完成…...

【PostgreSQL系列】PostgreSQL 复制参数详解

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

给easyui的textbox绑定回车事件

项目有一个textbox输入框,需要绑定一个回车搜索事件。 一开始想着,直接使用js的on或者jquery的keydown方法直接绑定,但是事件不生效。 $("#propName").textbox({width: 200,prompt: "请输入物品名称进行搜索" }).keydo…...

量子计算 | 量子密码学的挑战和机遇

量子计算在密码学中的应用现主要体现在对现有加密算法的威胁上。最著名的例子是Shor算法,该算法能够在多项式时间内分解大整数,从而威胁到基于大数分解的加密算法,如RSA加密。此外,量子计算还可以加速某些类型的密码分析&#xff…...

什么是着色器 Shader

本人就是图形学结课了,对 OpenGL着色器还有很多疑问嘿嘿 文章目录 为什么要有着色器vshaderfshader 本文围绕 vshader 和 fshader 代码示例讲解。 (着色器代码取自本人简单OpenGL项目 https://github.com/DBWGLX/-OpenGL-3D-Lighting-and-Shadow-Modeli…...

STM32H562----------启动时钟分析

1、H562启动过程分析 1.1、启动模式 复位方式有三种:上电复位、硬件复位和软件复位。当产生复位后,离开复位状态后 CM33 内核做的第一件事就是 读取堆栈指针 MSP 的初始值及程序计数器指针 PC 的初始值: 1、从地址 0x0000 0000 处读取出堆栈指针 MSP 的初始值,该值即栈…...

MIT 6.S081 2020 Lab4 traps 个人全流程

零、写在前面 做之前可以看看Chapter 4:Traps and systems calls,了解XV6 下的陷入机制 https://pdos.csail.mit.edu/6.828/2020/xv6/book-riscv-rev1.pdf 这个实验旨在探索系统调用如何实现了trap,会先做一个有关栈的练习,然后…...

基于YOLOv8-OBB的旋转目标检测:从数据制作到自动标注完整指南

一、引言 目标检测作为计算机视觉中的核心任务,广泛应用于安防监控、自动驾驶、工业质检等场景。传统的目标检测方法多使用水平边界框(HBB)进行目标定位。然而在一些特殊应用场景(如遥感图像、文本检测、PCB检测等)中…...

【自然语言处理与大模型】向量数据库:Chroma使用指南

Chroma是一款功能强大的开源 AI 应用数据库,专为高效数据存储与检索而设计。它不仅支持 Embedding 和 Metadata 的存储,还集成了多项核心功能,包括向量搜索、全文搜索、Document 存储、Metadata 过滤以及多模态检索。此外,Chroma …...

一文掌握工业相机选型计算

目录 一、基本概念 1.1 物方和像方 1.2 工作距离和视场 1.3 放大倍率 1.4 相机芯片尺寸 二、公式计算 三、实例应用 一、基本概念 1.1 物方和像方 在光学领域,物方(Object Space)是与像方(Image Space)相对的…...

【周输入】510周阅读推荐-3

前文 【周输入】510周阅读推荐-1-CSDN博客 【周输入】510周阅读推荐-2-CSDN博客 本次推荐 目录 前文 本次推荐 算法技术 模型产品 算法技术 vLLM和DeepSpeed部署模型的优缺点_vllm deepspeed-CSDN博客 优点缺点总结vLLM 适用于推理 优化内存管理 高效并行化 功能单…...

机器学习(11)——xgboost

文章目录 1. 算法背景和动机1.1. 提升算法(Boosting)1.2. XGBoost的改进动机2. 算法基础 3. 核心创新3.4 稀疏感知算法 4. 系统优化4.1 列块(Column Block)4.2 缓存感知访问4.3 外存计算 5. 算法细节5.1 树生长策略5.2 特征重要性评估5.3 自定义目标函数…...

大语言模型上下文长度:发展历程、局限与技术突破

1. 引言:什么是上下文长度及其重要性 上下文长度(Context Length),也称为上下文窗口(Context Window),指的是大语言模型(LLM)在处理和生成文本时能够有效记忆和利用的信…...

ControlNet简洁

ControlNet 什么是ControlNet ControlNet是一种用于控制扩散模型生成结果的网络结构。该结构可以将边缘图,结构图等信息注入扩散模型,从而能够对生成结果进行更为精细的控制。 ControlNet是怎么实现的 在模型结构方面,其大致结构如下图所…...

【C】C程序内存分配

文章目录 1. C程序内存布局 1. C程序内存布局 从低地址到高地址依次为: 代码段 存储内容:存放编译后的机器指令特点:代码段是只读的;可共享,多个进程可共享同一份代码 数据段 存储内容 已初始化的全局变量已初始化的静…...

论文学习:《引入TEC - LncMir,通过对RNA序列的深度学习来预测lncRNA - miRNA的相互作用》

长链非编码RNA ( long noncoding RNAs,lncRNAs )是一类长度通常大于200个核糖核苷酸的非编码RNA ,微小RNA ( microRNAs,miRNAs )是一类由22个核糖核苷酸组成的短链非编码RNA。近年来,越来越多的研究表明,lncRNA和miRNA…...

【每日一题丨2025年5.12~5.18】排序相关题

个人主页:Guiat 归属专栏:每日一题 文章目录 1. 【5.12】P1068 [NOIP 2009 普及组] 分数线划定2. 【5.13】P5143 攀爬者3. 【5.14】P12366 [蓝桥杯 2022 省 Python B] 数位排序4. 【5.15】P10901 [蓝桥杯 2024 省 C] 封闭图形个数5.【5.16】P12165 [蓝桥…...

AIDA64 extreme7.5 版本注册激活方法

一、AIDA 7.5 序列号 3BQN1-FUYD6-4GDT1-MDPUY-TLCT7 UVLNY-K3PDB-6IDJ6-CD8LY-NMVZM 4PIID-N3HDB-IWDJI-6DMWY-9EZVU 二、安装激活方法 激活步骤: 1、打开AIDA64软件,点击顶部菜单栏的“帮助”→“输入序列号” 2、将生成的序列号粘贴至输入框&a…...

Python 条件语句详解

条件语句是编程中用于控制程序流程的基本结构,Python 提供了几种条件语句来实现不同的逻辑判断。 1. if 语句 最基本的条件语句形式: if 条件:# 条件为真时执行的代码块示例: age 18 if age > 18:print("你已经成年了")2. …...

模型评估与调优(PyTorch)

文章目录 模型评估方法混淆矩阵混淆矩阵中的指标ROC曲线(受试者工作特征)AUCR平方残差均方误差(MSE)均方根误差(RMSE)平均绝对误差(MAE) 模型调优方法交叉验证(CV&#x…...

oppo手机安装APK失败报错:安装包异常

如果你的apk文件在oppo手机安装失败了,像这样: 先说我们当时解决方式: 如果还没上架应用市场的测试包,在上面图一中需要关闭“超级守护”,类似华为的纯净模式。如果开启了还还不行,安装页面的报错太笼统不…...

互联网大厂Java面试场景:从缓存到容器化的技术问答

场景:互联网大厂Java面试之旅 面试官:严肃的技术专家 应聘者:搞笑的水货程序员明哥 第一轮:缓存技术与数据库优化 面试官:明哥,你能谈谈Redis的常见使用场景和一些优化技巧吗? 明哥&#xf…...

【android bluetooth 协议分析 01】【HCI 层介绍 6】【WriteLeHostSupport命令介绍】

HCI 指令 HCI_Write_LE_Host_Support 是 Bluetooth Host 向 Controller 发送的一条指令,用于启用或禁用主机对 Bluetooth Low Energy(LE)的支持能力。该指令属于 HCI(Host Controller Interface)命令集合中&#xff0c…...

Helm配置之为特定Deployment配置特定Docker仓库(覆盖全局配置)

文章目录 Helm配置之为特定Deployment配置特定Docker仓库(覆盖全局配置)需求方法1:使用Helm覆盖值方法2: 在Lens中临时修改Deployment配置步骤 1: 创建 Docker Registry Secret步骤 2: 在 Deployment 中引用 Secret参考资料Helm配置之为特定Deployment配置特定Docker仓库(覆…...

项目:在线音乐播放服务器——基于SSM框架和mybatis

介绍项目 项目主要是基于SSM框架和mybatis进行实现 主要的功能: 登陆界面,用户注册,音乐的播放列表,删除指定的歌曲,批量删除指定的歌曲,收藏歌曲,查询歌曲,从收藏列表中删除收藏…...

Linux配置vimplus

配置vimplus CentOS的配置方案很简单,但是Ubuntu的解决方案网上也很多但是有效的很少,尤其是22和24的解决方案,在此我整理了一下我遇到的问题解决方法 CentOS7 一键配置VimForCPP 基本上不会有什么特别难解决的报错 sudo yum install vims…...

Ubuntu22.04开机运行程序

新建启动文件 sudo vim /etc/systemd/system/trojan.service 2. 写入配置文件 [Unit] DescriptionTrojan Proxy Service Afternetwork.target[Service] Typesimple ExecStart/home/cui/Downloads/trojan/trojan -c /home/cui/Downloads/trojan/config.json Restarton-failur…...

高效查询:位图、B+树

1. 位图(BitMap)与布隆过滤器(Bloom Filter) 1.1. 问题背景与解决方案 问题背景 场景:网页爬虫判重 搜索引擎的爬虫会不断地解析网页中的链接并继续爬取。一个网页可能在多个页面中出现,容易重复爬取。…...

HashMap的扩容机制

在添加元素或初始化的时候需要调用resize方法进行扩容,第一次添加数据初始化数组长度为16,以后每次每次扩容都是达到了扩容阈值(数组长度 * 0.75) 每次扩容的时候,都是扩容之前容量的2倍; 扩容之后&#…...

从坏道扫描到错误修复:HD Tune实战指南

一、硬盘检测的必要性 随着计算机使用时间的增加,机械硬盘和固态硬盘都会出现不同程度的性能衰减。定期进行硬盘健康检查可以:及时发现潜在故障;预防数据丢失风险;掌握存储设备实际状态。 二、HD Tune功能解析 性能测试&#x…...