- VirtualBox安装Ubuntu 22.04后终端无法打开的解决方案
yuanpan
ubuntulinux运维
问题现象在VirtualBox中使用"快速安装"模式安装Ubuntu22.04后图形终端(gnome-terminal)无法通过图标或快捷键(Ctrl+Alt+T)启动系统其他功能正常根本原因语言环境(Locale)配置异常导致:快速安装模式可能跳过Locale生成步骤gnome-terminal依赖的本地化资源加载失败解决方案▶方法1:修复Locale配置(推荐)进入TTY终端快捷键:Ctrl+
- os系统服务器防火墙怎么关闭,mac防火墙如何关闭
用久了mac防火墙,有点烦它了,想要关闭该怎么办呢?下面由小编给你做出详细的mac防火墙关闭方法介绍!希望对你有帮助!mac防火墙关闭方法一:1.在开始界面下点击【桌面】或【Win+D】快捷键或单独按【Win】显示桌面。2.在开始的位置的地方点击鼠标右键。选择【控制面板】3.进入控制面板后点击【用户帐户和家庭安全】4.在用户帐户和家庭安全界面中依次点击【系统和安全】----【Windows防火墙】
- linux命令less的实际应用
悟能不能悟
linuxless前端
less是Linux/Unix中交互式文件查看神器,相比more和cat,它支持自由导航、搜索、高亮等强大功能,尤其适合处理大文件或实时日志。以下是深度应用指南:一、核心优势lesslarge_file.log#秒开GB级文件(不加载整个文件到内存)tail-flog.txt|less#结合管道实时查看动态日志(比tail-f更强)二、高效导航操作快捷键功能描述使用场景示例Space/f向下翻一页
- Bettertouchtool 4.291(触控板增强软件)
raeneiane09
1024程序员节
BetterTouchTool是一款功能强大的Mac触控板增强软件,它允许用户自定义触摸栏、魔术鼠标和键盘快捷键等输入设备的操作和手势。通过BetterTouchTool,用户可以更高效地操作和控制Mac设备。主要特点和功能包括:自定义触摸栏和魔术鼠标:允许用户自定义MacBook触摸栏和MagicMouse的手势和按钮,为不同的手势和按钮分配自定义操作,如启动应用程序、调整音量、控制播放器等。键
- 程序学3DMax之改变物体的中心轴及物体归置零点
黑色最低调的奢华
3DMax3DMax
小白欢迎评论,共同探讨,共同进步此系列博文为程序小白记录笔记,以防忘记。快捷键Alt+W(最大化选中的视口)移动改变物体的轴,点击如下图所示,
- Mac鼠标增强软件:Bettertouchtool
鱼儿吃西瓜
Mac软件
BetterTouchTool是一款功能强大的应用程序,可让您自定义Mac上的各种输入设备。你可以通过BetterTouchTool强大的动作分配工具指定只要你能想到的系统动作,然后通过分配的按键手势快速触发指定的动作。BetterTouchTool支持Macbook触控板魔术触控板1和2魔术鼠标1和2触控栏自定义Siri/Apple遥控器普通鼠标手势普通鼠标键键盘快捷键键序列/文本触发器BTT远
- JetBrains 2025 全家桶 IDEA、WebStorm、DataSpell、DataGrip、Pycharm、CLion、Rider、PhpStorm、GoLand
原文地址:JetBrains2025全家桶11合1含IDEA、PyCharm、DataGrip、WebStrom、GoLand、CLion、PhpStorm、DataSpell等JetBrains2025全家桶11合1包含:IDEA、WebStorm、DataSpell、DataGrip、Pycharm、RustRover、CLion、Rider、PhpStorm、RubyMine、GoLand。
- 触摸板增强工具 BetterTouchTool
原文地址:BetterTouchToolMac中文触摸板增强工具BetterTouchToolmac版,是一款触摸板增强工具,允许用户使用各种手势来控制其计算机。Bettertouchtoolmac是一个小而高效的macOS应用程序,旨在帮助您为手势定义快捷方式。此外,Bettertouchtool可用于使用常规鼠标和键盘快捷键,并提供伴侣iOS应用程序:您可以使用移动设备来控制计算机。
- HTML5
Darling02zjh
html5前端html
HTML:和其他的语言一样也有基础的框架和快捷键。命名规则:后缀名是“.html”每个项目最上面都有是H5的声明,处于标签之前骨架:html标签:定义HTML文档,这个元素我们浏览器看到后就明白这是个HTML文档了,所以你的其他元素要包裹在这个标签里面,标签限定了文档的开始点和结束点。...其他元素head标签:head标签用于文档的头部,文档的头部描述文档的各种属性和信息,包括文档的标题,在we
- Vscode的常用快捷键(摆脱鼠标计划)
Hi_kenyon
vscode计算机外设ide
我在使用python开发一个python项目工程,下面是我平时用到的快捷键、vscode设置与vscode插件快捷键以下是在VSCode中开发Python项目时可能用到的所有快捷键,按功能分类:Ctrl+P快速打开Ctrl+Shift+P打开VS配置Ctrl+K快捷组合键先导键基础文件操作Ctrl+N新建文件Ctrl+O打开文件Ctrl+S保存文件Ctrl+Shift+S另存为Ctrl+W关闭当前
- 快捷键组合:vscode、vim、bash
hzlarm
工具
vscode快捷键按Press功能FunctionCtrl+Shift+P,F1显示命令面板ShowCommandPaletteCtrl+P快速打开QuickOpenCtrl+Shift+N新窗口/实例Newwindow/instanceCtrl+Shift+W关闭窗口/实例Closewindow/instance基础编辑Basicediting按Press功能FunctionCtrl+X剪切行(
- SoldWorks-装配体快捷键,及相关操作,文件的打包操作
zuoheizhu
SolidWorks
选中目标面进行拖拽到+按住Alt键=会自动吸附到需要装配的物体上按住Ctrl键+拖拽右侧设计树中的零件=会复制这个零件一份上图,可以将零件,居中放置。。其中蓝色为最外侧的参照物的面,紫色为需要居中对齐的零件(面的两侧)装配体的文件,只保存组装信息,不包含零件。故,零件没有的情况,装配体将会报错。为了解决上面这个问题,Soldwork,有一个文件打包功能。在下图中选中自己要打包的文件。
- PyCharm高效入门指南大纲
flashlightboy
pycharmidepython
安装与基础配置PyCharm的下载与安装(社区版与专业版区别)首次启动的基础设置(主题、字体、快捷键方案调整)配置Python解释器(虚拟环境、系统解释器、远程解释器)项目创建与管理新建项目与打开已有项目项目目录结构解析(src、venv、.idea等)多项目管理与窗口布局调整代码编辑与导航智能代码补全与代码模板(LiveTemplates)快速跳转(类、方法、文件)与查找(全局搜索、符号搜索)代
- Markdown编辑器全新功能大揭秘
方俊涵
c++
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入欢迎使用Mark
- 关闭Windows Defender, 比较占用cpu和硬盘资源
xiuzhentianting
windows
使用快捷键(WIN+R)调出运行工具,然后再输入组策略命令(gpedit.msc)再点击确定。进入组策略在计算机配置下面的管理模板,Windows组件就可以看到WindowsDefender这一样。双击WindowsDefender双击关闭WindowsDefender再选择启用最后确定
- Typora的使用
爱编程的梨清
Typora前端
Typora的使用一、标题1.1Typora支持6级标题#一级标题##二级标题###三级标题####四级标题#####五级标题######六级标题注意点,从一级标题到五级标题是字体从大到小显示,五级标题和六级标题字体是一样大的,只是文字颜色变浅1.2快捷键创建标题的快捷键是:Ctrl+1一级标题Ctrl+2二级标题Ctrl+3三级标题Ctrl+4四级标题Ctrl+5五级标题Ctrl+6六级标题二、
- Blender软件安装&常见使用问题解答
hereitis
软件下载【Blender3.2】软件安装1)下载完成的“Blender”安装文件压缩包,右键解压缩2)双击“blender-3.2.0-windows-x64”应用程序开始安装3)按提示步骤点击安装,安装路径尽量避开C盘4)安装完成打开界面,选择语言-中文简体,开始体验吧软件使用问题一、语言切换成中文直接看图吧二、常用快捷键全选:【A】透视:【Z】删除:【X】模型角度:【1】沿x轴方向看、【3】沿
- mysql sql 优化
这里写自定义目录标题数据除重欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入BATJ
- OpenCV常见的优化方法和技巧总结
liuyong178
这里写自定义目录标题新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入【尊重原创,转载请注明出处】http://bl
- (转)eclipse常用快捷键
霍运浩
引言做java开发的,经常会用Eclipse或者MyEclise集成开发环境,一些实用的Eclipse快捷键和使用技巧,可以在平常开发中节约出很多时间提高工作效率,下面我就结合自己开发中的使用和大家分享一下Eclipse中常用到的快捷键和技巧。1、alt+?或alt+/:自动补全代码或者提示代码这个是我最得意的快捷键组合了,尤其是当输入syso几个字符之后,2个手指轻松按下这2个键的时候,自动就补
- MacOS快捷键
多个窗口切换:command+~新建界面:command+N(vscode使用shift+command+N)在当前界面,新建一个tab样式的新窗口:command+Tvscode新建终端:ctrl+shift+~选中一行:点击三下选中指定区域:点击后按住shift再点击打开浏览器devtools:fn+f12(command+option+I)vscode切换到上一个光标位置:ctrl+-浏览器
- 【网络教程】解决Pycharm转VSCode遇到的问题(pipenv解释器设置,python导自定义包报错)
xiaoqiangclub
自学笔记网络教程pycharmpythonvscode
文章目录设置解释器导包报错设置解释器如果您和我一样,使用的是pipenv虚拟环境,在我们转到使用vscode运行代码的时候会报错,找不到对应的包,这个时候我们进行以下设置使用快捷键Ctrl+Shift+P打开命令输入框,在输入框内搜索解释器或interpreter,然后选择python解释器,如下图然后就会出现对应的pipenv虚拟环境供您选择(这些是我前面在pycharm中创建的),如下图选择您
- VScode的快捷键
我就是我是好孩子啊
vscodeide编辑器
Command+X剪切(未选中文本的情况下,剪切光标所在行)Command+C复制(未选中文本的情况下,复制光标所在行)Option+Up向上移动行Option+Down向下移动行Option+Shift+Up向上复制行Option+Shift+Down向下复制行Command+Shift+K删除行Command+Enter下一行插入Command+Shift+Enter上一行插入Command+
- VSCode 快捷键汇总
smallseapig
#快捷键vscodeide编辑器快捷键shortcuts
VSCode快捷键汇总前言快捷键汇总参考快捷键大全自定义快捷键分享【风格偏Linux、Vim】前言Coder苦鼠标久已,整理汇总VSCode快捷键快捷键顺序没有特殊含义,想到什么就写什么,相对来说靠前的是作者比较常用的快捷键汇总复制:Ctrl+C粘贴:Ctrl+V⭐选中下个相同单词:Ctrl+D选中所有相同单词:Ctrl+Shift+L选中当前行:Ctrl+L向下插入一行:Ctrl+Enter向上
- VSCode常用快捷键
SXHHHHHH
vscodeide编辑器
1.代码排版Shift+Alt+F2.删除一行Ctrl+Shift+K3.复制一行到下一行Shift+Alt+↓4.注释一整行(也可以多行)Ctrl+/
- VSCode中常用的快捷键
哭哭啼
工具vscodeide编辑器
通用操作快捷键显示命令面板:Ctrl+Shift+PorF1,用于快速访问VSCode的各种命令。快速打开:Ctrl+P,可以快速打开文件、跳转到某个行号或搜索项目内容。新建窗口/实例:Ctrl+Shift+N,用于打开一个新的VSCode窗口或者实例。关闭窗口/实例:Ctrl+Shift+W,用于关闭当前打开的VSCode窗口或者实例。文件管理快捷键保存:Ctrl+S,用于保存当前打开的文件。新
- pycharm中自动补全方法返回变量
爱吃面条的猿
pythonpycharmidepython
使用IDEA开发java中,可以使用alt+enter快捷键快速补全方法放回的变量使用pycharm也想实现此效果,如下图操作方法:pycharm中默认的补全方法返回变量的快捷键是:Ctrl+Alt+v可以直接使用默认快捷键,也可以在settings->keymap,搜索introducevariable关键字找到下图所示
- ChatGPT桌面版深度解析
ChatGPT桌面版深度解析:功能、安装与高效使用全攻略一、核心功能全景解析(一)全场景交互体系全局热键唤醒支持MacOS(Option+空格)与Windows(Alt+空格)全局快捷键,实现跨应用无缝调用。通过系统设置可自定义专属热键,满足开发者高频使用需求,相比网页版省去浏览器切换的繁琐步骤。基于Electron框架的底层优化,热键响应速度可达0.3秒,远快于网页版的平均2秒切换时间。多模态输
- CentOS 7 Linux 基础知识点汇总
CentOS7Linux基础知识点汇总为方便初学者快速掌握CentOS7系统的核心操作,本文档整理了常用系统命令、快捷键、目录结构及文件后缀名等基础内容,适合入门参考。一、常见系统命令命令行提示符说明终端中的提示符包含关键信息,直观反映当前操作环境:[root@sl~]#root:当前登录用户为超级用户(拥有系统全部权限)sl:主机名(可通过hostname命令修改)~:当前所在目录为用户家目录(
- 几个Excel小技巧,数十倍提升你的效率!(EXCEL神操作系列之五)
CACA有数
Excel中的小技巧那么多,你会用几个呢?1.定位空单元格普通操作对于表格中的空单元格定位,普通操作就是利用鼠标配合Ctrl键将空单元格逐一选中。这种操作在数据量大时,耗时且容易出错。大神操作大神诀窍:Ctrl键+"G"键Ctrl键+"G"键:按条件定位单元格,这个快捷键不单单可以定位空单元格,还可以根据其他所选条件定位你想要的单元格。上图操作:Ctrl键+"G"键配合Alt键+"="键两个快捷键
- java杨辉三角
3213213333332132
java基础
package com.algorithm;
/**
* @Description 杨辉三角
* @author FuJianyong
* 2015-1-22上午10:10:59
*/
public class YangHui {
public static void main(String[] args) {
//初始化二维数组长度
int[][] y
- 《大话重构》之大布局的辛酸历史
白糖_
重构
《大话重构》中提到“大布局你伤不起”,如果企图重构一个陈旧的大型系统是有非常大的风险,重构不是想象中那么简单。我目前所在公司正好对产品做了一次“大布局重构”,下面我就分享这个“大布局”项目经验给大家。
背景
公司专注于企业级管理产品软件,企业有大中小之分,在2000年初公司用JSP/Servlet开发了一套针对中
- 电驴链接在线视频播放源码
dubinwei
源码电驴播放器视频ed2k
本项目是个搜索电驴(ed2k)链接的应用,借助于磁力视频播放器(官网:
http://loveandroid.duapp.com/ 开放平台),可以实现在线播放视频,也可以用迅雷或者其他下载工具下载。
项目源码:
http://git.oschina.net/svo/Emule,动态更新。也可从附件中下载。
项目源码依赖于两个库项目,库项目一链接:
http://git.oschina.
- Javascript中函数的toString()方法
周凡杨
JavaScriptjstoStringfunctionobject
简述
The toString() method returns a string representing the source code of the function.
简译之,Javascript的toString()方法返回一个代表函数源代码的字符串。
句法
function.
- struts处理自定义异常
g21121
struts
很多时候我们会用到自定义异常来表示特定的错误情况,自定义异常比较简单,只要分清是运行时异常还是非运行时异常即可,运行时异常不需要捕获,继承自RuntimeException,是由容器自己抛出,例如空指针异常。
非运行时异常继承自Exception,在抛出后需要捕获,例如文件未找到异常。
此处我们用的是非运行时异常,首先定义一个异常LoginException:
/**
* 类描述:登录相
- Linux中find常见用法示例
510888780
linux
Linux中find常见用法示例
·find path -option [ -print ] [ -exec -ok command ] {} \;
find命令的参数;
- SpringMVC的各种参数绑定方式
Harry642
springMVC绑定表单
1. 基本数据类型(以int为例,其他类似):
Controller代码:
@RequestMapping("saysth.do")
public void test(int count) {
}
表单代码:
<form action="saysth.do" method="post&q
- Java 获取Oracle ROWID
aijuans
javaoracle
A ROWID is an identification tag unique for each row of an Oracle Database table. The ROWID can be thought of as a virtual column, containing the ID for each row.
The oracle.sql.ROWID class i
- java获取方法的参数名
antlove
javajdkparametermethodreflect
reflect.ClassInformationUtil.java
package reflect;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.Modifier;
import javassist.bytecode.CodeAtt
- JAVA正则表达式匹配 查找 替换 提取操作
百合不是茶
java正则表达式替换提取查找
正则表达式的查找;主要是用到String类中的split();
String str;
str.split();方法中传入按照什么规则截取,返回一个String数组
常见的截取规则:
str.split("\\.")按照.来截取
str.
- Java中equals()与hashCode()方法详解
bijian1013
javasetequals()hashCode()
一.equals()方法详解
equals()方法在object类中定义如下:
public boolean equals(Object obj) {
return (this == obj);
}
很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们知道,String 、Math、I
- 精通Oracle10编程SQL(4)使用SQL语句
bijian1013
oracle数据库plsql
--工资级别表
create table SALGRADE
(
GRADE NUMBER(10),
LOSAL NUMBER(10,2),
HISAL NUMBER(10,2)
)
insert into SALGRADE values(1,0,100);
insert into SALGRADE values(2,100,200);
inser
- 【Nginx二】Nginx作为静态文件HTTP服务器
bit1129
HTTP服务器
Nginx作为静态文件HTTP服务器
在本地系统中创建/data/www目录,存放html文件(包括index.html)
创建/data/images目录,存放imags图片
在主配置文件中添加http指令
http {
server {
listen 80;
server_name
- kafka获得最新partition offset
blackproof
kafkapartitionoffset最新
kafka获得partition下标,需要用到kafka的simpleconsumer
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.
- centos 7安装docker两种方式
ronin47
第一种是采用yum 方式
yum install -y docker
 
- java-60-在O(1)时间删除链表结点
bylijinnan
java
public class DeleteNode_O1_Time {
/**
* Q 60 在O(1)时间删除链表结点
* 给定链表的头指针和一个结点指针(!!),在O(1)时间删除该结点
*
* Assume the list is:
* head->...->nodeToDelete->mNode->nNode->..
- nginx利用proxy_cache来缓存文件
cfyme
cache
user zhangy users;
worker_processes 10;
error_log /var/vlogs/nginx_error.log crit;
pid /var/vlogs/nginx.pid;
#Specifies the value for ma
- [JWFD开源工作流]JWFD嵌入式语法分析器负号的使用问题
comsci
嵌入式
假如我们需要用JWFD的语法分析模块定义一个带负号的方程式,直接在方程式之前添加负号是不正确的,而必须这样做:
string str01 = "a=3.14;b=2.71;c=0;c-((a*a)+(b*b))"
定义一个0整数c,然后用这个整数c去
- 如何集成支付宝官方文档
dai_lm
android
官方文档下载地址
https://b.alipay.com/order/productDetail.htm?productId=2012120700377310&tabId=4#ps-tabinfo-hash
集成的必要条件
1. 需要有自己的Server接收支付宝的消息
2. 需要先制作app,然后提交支付宝审核,通过后才能集成
调试的时候估计会真的扣款,请注意
- 应该在什么时候使用Hadoop
datamachine
hadoop
原帖地址:http://blog.chinaunix.net/uid-301743-id-3925358.html
存档,某些观点与我不谋而合,过度技术化不可取,且hadoop并非万能。
--------------------------------------------万能的分割线--------------------------------
有人问我,“你在大数据和Hado
- 在GridView中对于有外键的字段使用关联模型进行搜索和排序
dcj3sjt126com
yii
在GridView中使用关联模型进行搜索和排序
首先我们有两个模型它们直接有关联:
class Author extends CActiveRecord {
...
}
class Post extends CActiveRecord {
...
function relations() {
return array(
'
- 使用NSString 的格式化大全
dcj3sjt126com
Objective-C
格式定义The format specifiers supported by the NSString formatting methods and CFString formatting functions follow the IEEE printf specification; the specifiers are summarized in Table 1. Note that you c
- 使用activeX插件对象object滚动有重影
蕃薯耀
activeX插件滚动有重影
使用activeX插件对象object滚动有重影 <object style="width:0;" id="abc" classid="CLSID:D3E3970F-2927-9680-BBB4-5D0889909DF6" codebase="activex/OAX339.CAB#
- SpringMVC4零配置
hanqunfeng
springmvc4
基于Servlet3.0规范和SpringMVC4注解式配置方式,实现零xml配置,弄了个小demo,供交流讨论。
项目说明如下:
1.db.sql是项目中用到的表,数据库使用的是oracle11g
2.该项目使用mvn进行管理,私服为自搭建nexus,项目只用到一个第三方 jar,就是oracle的驱动;
3.默认项目为零配置启动,如果需要更改启动方式,请
- 《开源框架那点事儿16》:缓存相关代码的演变
j2eetop
开源框架
问题引入
上次我参与某个大型项目的优化工作,由于系统要求有比较高的TPS,因此就免不了要使用缓冲。
该项目中用的缓冲比较多,有MemCache,有Redis,有的还需要提供二级缓冲,也就是说应用服务器这层也可以设置一些缓冲。
当然去看相关实现代代码的时候,大致是下面的样子。
[java]
view plain
copy
print
?
public vo
- AngularJS浅析
kvhur
JavaScript
概念
AngularJS is a structural framework for dynamic web apps.
了解更多详情请见原文链接:http://www.gbtags.com/gb/share/5726.htm
Directive
扩展html,给html添加声明语句,以便实现自己的需求。对于页面中html元素以ng为前缀的属性名称,ng是angular的命名空间
- 架构师之jdk的bug排查(一)---------------split的点号陷阱
nannan408
split
1.前言.
jdk1.6的lang包的split方法是有bug的,它不能有效识别A.b.c这种类型,导致截取长度始终是0.而对于其他字符,则无此问题.不知道官方有没有修复这个bug.
2.代码
String[] paths = "object.object2.prop11".split("'");
System.ou
- 如何对10亿数据量级的mongoDB作高效的全表扫描
quentinXXZ
mongodb
本文链接:
http://quentinXXZ.iteye.com/blog/2149440
一、正常情况下,不应该有这种需求
首先,大家应该有个概念,标题中的这个问题,在大多情况下是一个伪命题,不应该被提出来。要知道,对于一般较大数据量的数据库,全表查询,这种操作一般情况下是不应该出现的,在做正常查询的时候,如果是范围查询,你至少应该要加上limit。
说一下,
- C语言算法之水仙花数
qiufeihu
c算法
/**
* 水仙花数
*/
#include <stdio.h>
#define N 10
int main()
{
int x,y,z;
for(x=1;x<=N;x++)
for(y=0;y<=N;y++)
for(z=0;z<=N;z++)
if(x*100+y*10+z == x*x*x
- JSP指令
wyzuomumu
jsp
jsp指令的一般语法格式: <%@ 指令名 属性 =”值 ” %>
常用的三种指令: page,include,taglib
page指令语法形式: <%@ page 属性 1=”值 1” 属性 2=”值 2”%>
include指令语法形式: <%@include file=”relative url”%> (jsp可以通过 include