修改鼠标样式
This commit is contained in:
parent
13bd63d11d
commit
f484e52275
@ -16,7 +16,8 @@ beautify:
|
||||
title-prefix-icon: '\f0c1'
|
||||
title-prefix-icon-color: "#F47466"
|
||||
# 加載動畫 Loading Animation
|
||||
preloader: true
|
||||
preloader:
|
||||
true
|
||||
# enable: false
|
||||
# source
|
||||
# 1. fullpage-loading
|
||||
@ -28,7 +29,7 @@ preloader: true
|
||||
# 图片格式 background: url(http://xxxxxx.com/xxx.jpg)
|
||||
# 顔色 background: '#49B202'
|
||||
# 留空 显示白色
|
||||
background: '#efefef'
|
||||
background: "#efefef"
|
||||
# background: url(https://i.loli.net/2019/09/09/5oDRkWVKctx2b6A.png)
|
||||
|
||||
highlight_theme: mac light
|
||||
@ -39,7 +40,6 @@ code_word_wrap: true
|
||||
index_img: https://gcore.jsdelivr.net/gh/volantis-x/cdn-wallpaper/abstract/BBC19066-E176-47C2-9D22-48C81EE5DF6B.jpeg
|
||||
archive_img: https://gcore.jsdelivr.net/gh/volantis-x/cdn-wallpaper/abstract/67239FBB-E15D-4F4F-8EE8-0F1C9F3C4E7C.jpeg
|
||||
|
||||
|
||||
# Footer设置
|
||||
since: 2022
|
||||
footer_custom_text: Hi, welcome to my Xiaoda blog!
|
||||
@ -74,8 +74,9 @@ aplayerInject:
|
||||
per_page: true
|
||||
inject:
|
||||
head:
|
||||
- <link rel="stylesheet" href="/css/mouse.css">
|
||||
bottom:
|
||||
# 7427714271
|
||||
# 7427714271
|
||||
- <div class="aplayer no-destroy" data-id="7755841452" data-server="netease" data-type="playlist" data-fixed="true" data-mini="true" data-listFolded="false" data-order="random" data-lrctype="1" data-preload="none" data-autoplay="true" muted></div>
|
||||
- <script async src="https://npm.elemecdn.com/tzy-blog/lib/js/other/sakura.js"></script>
|
||||
pjax:
|
||||
@ -86,4 +87,4 @@ pjax:
|
||||
# fab fa-github: https://github.com/xxxxx || Github
|
||||
# fas fa-envelope: mailto:xxxxxx@gmail.com || Email
|
||||
wordcount:
|
||||
enable: true
|
||||
enable: true
|
||||
|
||||
20
_config.yml
20
_config.yml
@ -5,11 +5,11 @@
|
||||
# Site
|
||||
title: XiaodaのBlog
|
||||
#subtitle: 'XiaodaBlog'
|
||||
description: '欢迎访问小达的博客!'
|
||||
description: "欢迎访问小达的博客!"
|
||||
keywords: 编程
|
||||
author: Wen Yongda
|
||||
language: zh-CN
|
||||
timezone: 'Asia/Shanghai'
|
||||
timezone: "Asia/Shanghai"
|
||||
|
||||
# URL
|
||||
## Set your site url here. For example, if you use GitHub Page, set url as 'https://username.github.io/project'
|
||||
@ -37,7 +37,7 @@ titlecase: false # Transform title into titlecase
|
||||
external_link:
|
||||
enable: true # Open external links in new tab
|
||||
field: site # Apply to the whole site
|
||||
exclude: ''
|
||||
exclude: ""
|
||||
filename_case: 0
|
||||
render_drafts: false
|
||||
post_asset_folder: true
|
||||
@ -50,21 +50,21 @@ highlight:
|
||||
enable: true
|
||||
line_number: false
|
||||
auto_detect: false
|
||||
tab_replace:
|
||||
tab_replace:
|
||||
# wrap: true
|
||||
hljs: true
|
||||
prismjs:
|
||||
enable: false
|
||||
preprocess: true
|
||||
line_number: false
|
||||
tab_replace: ''
|
||||
tab_replace: ""
|
||||
|
||||
# Home page setting
|
||||
# path: Root path for your blogs index page. (default = '')
|
||||
# per_page: Posts displayed per page. (0 = disable pagination)
|
||||
# order_by: Posts order. (Order by date descending by default)
|
||||
index_generator:
|
||||
path: ''
|
||||
path: ""
|
||||
per_page: 10
|
||||
order_by: -date
|
||||
|
||||
@ -84,7 +84,7 @@ meta_generator: true
|
||||
date_format: YYYY-MM-DD
|
||||
time_format: HH:mm:ss
|
||||
## updated_option supports 'mtime', 'date', 'empty'
|
||||
updated_option: 'mtime'
|
||||
updated_option: "mtime"
|
||||
|
||||
# Pagination
|
||||
## Set per_page to 0 to disable pagination
|
||||
@ -106,10 +106,10 @@ theme: butterfly
|
||||
# Deployment
|
||||
## Docs: https://hexo.io/docs/one-command-deployment
|
||||
deploy:
|
||||
type: 'git'
|
||||
repo: https://gitee.com/wenyongda/xiaoda-blog.git
|
||||
type: "git"
|
||||
repo: https://github.com/wenyongda/XiaodaBlog.git
|
||||
branch: master
|
||||
|
||||
aplayer:
|
||||
meting: true
|
||||
asset_inject: false
|
||||
asset_inject: false
|
||||
|
||||
@ -205,6 +205,127 @@ Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一
|
||||
|
||||
### 使用 Dockerfile 定制镜像
|
||||
|
||||
1. 定制一个 nginx 镜像(构建好的镜像内会有一个 /usr/share/nginx/html/index.html 文件)
|
||||
在一个空目录下,新建一个名为 Dockerfile 文件,并在文件内添加以下内容:
|
||||
|
||||
```dockerfile
|
||||
FROM nginx
|
||||
RUN echo '这是一个本地构建的nginx镜像' > /usr/share/nginx/html/index.html
|
||||
```
|
||||
|
||||
2. FROM 和 RUN 指令的作用
|
||||
**FROM**: 定制的镜像都是基于 FROM 的镜像,这里的 nginx 就是定制需要的基础镜像。后续的操作都是基于 nginx。
|
||||
**RUN**: 用于执行后面跟着的命令行命令。有以下俩种格式:
|
||||
shell 格式:
|
||||
|
||||
```dockerfile
|
||||
RUN <命令行命令>
|
||||
# <命令行命令> 等同于,在终端操作的 shell 命令。
|
||||
```
|
||||
|
||||
exec 格式:
|
||||
|
||||
```dockerfile
|
||||
RUN ["可执行文件", "参数1", "参数2"]
|
||||
# 例如:
|
||||
# RUN ["./test.php", "dev", "offline"] 等价于 RUN ./test.php dev offline
|
||||
```
|
||||
|
||||
**注意**: Dockerfile 的指令每执行一次都会在 docker 上新建一层。所以过多无意义的层,会造成镜像膨胀过大。例如:
|
||||
|
||||
```dockerfile
|
||||
FROM centos
|
||||
RUN yum -y install wget
|
||||
RUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz"
|
||||
RUN tar -xvf redis.tar.gz
|
||||
```
|
||||
|
||||
以上执行会创建 3 层镜像。可简化为以下格式:
|
||||
|
||||
```dockerfile
|
||||
FROM centos
|
||||
RUN yum -y install wget \
|
||||
&& wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz" \
|
||||
&& tar -xvf redis.tar.gz
|
||||
```
|
||||
|
||||
如上,以 **&&** 符号连接命令,这样执行后,只会创建 1 层镜像。
|
||||
|
||||
### 开始构建镜像
|
||||
|
||||
在 Dockerfile 文件的存放目录下,执行构建动作。
|
||||
|
||||
以下示例,通过目录下的 Dockerfile 构建一个 nginx:v3(镜像名称:镜像标签)。
|
||||
|
||||
**注**: 最后的`.`代表本次执行的上下文路径,下一节会介绍。
|
||||
|
||||
```shell
|
||||
docker build -t nginx:v3 .
|
||||
```
|
||||
|
||||

|
||||
|
||||
### 上下文路径
|
||||
|
||||
上一节中,有提到指令最后一个 **.** 是上下文路径,那么什么是上下文路径呢?
|
||||
|
||||
```shell
|
||||
docker build -t nginx:v3 .
|
||||
```
|
||||
|
||||
上下文路径,是指 docker 在构建镜像,有时候想要使用到本机的文件(比如复制),docker build 命令得知这个路径后,会将路径下的所有内容打包。
|
||||
|
||||
**解析**:由于 docker 的运行模式是 C/S。我们本机是 C,docker 引擎是 S。实际的构建过程是在 docker 引擎下完成的,所以这个时候无法用到我们本机的文件。这就需要把我们本机的指定目录下的文件一起打包提供给 docker 引擎使用。
|
||||
|
||||
如果未说明最后一个参数,那么默认上下文路径就是 Dockerfile 所在的位置。
|
||||
|
||||
**注意**:上下文路径下不要放无用的文件,因为会一起打包发送给 docker 引擎,如果文件过多会造成过程缓慢。
|
||||
|
||||
### 指令详解
|
||||
|
||||
| Dockerfile 指令 | 说明 |
|
||||
| --------------- | ------------------------------------------------------------ |
|
||||
| FROM | 指定基础镜像,用于后续的指令构建。 |
|
||||
| MAINTAINER | 指定Dockerfile的作者/维护者。(已启用,推荐使用LABEL指令) |
|
||||
| LABEL | 添加镜像的元数据,使用键值对的形式。 |
|
||||
| RUN | 在构建过程中在镜像中执行命令。 |
|
||||
| CMD | 指定容器创建时的默认命令。(可以被覆盖) |
|
||||
| ENTRYPOINT | 设置容器创建时的主要命令。(不可被覆盖) |
|
||||
| EXPOSE | 声明容器运行时监听的特定网络端口。 |
|
||||
| ENV | 在容器内部设置环境变量。 |
|
||||
| ADD | 将文件、目录或远程URL复制到镜像中。 |
|
||||
| COPY | 将文件或目录复制到镜像中。 |
|
||||
| VOLUME | 为容器创建挂载点或声明卷。 |
|
||||
| WORKDIR | 设置后续指令的工作目录。 |
|
||||
| USER | 指定后续指令的用户上下文。 |
|
||||
| ARG | 定义在构建过程中传递给构建器的变量,可使用"docker build"命令设置。 |
|
||||
| ONBUILD | 当该镜像被用作另一个构建过程的基础时,添加触发器。 |
|
||||
| STOPSIGNAL | 设置发送给容器以退出的系统调用信号。 |
|
||||
| HEALTHCHECK | 定义周期性检查容器健康状态的命令。 |
|
||||
| SHELL | 覆盖Docker中默认的shell,用于RUN、CMD和ENTRYPOINT。 |
|
||||
|
||||
#### COPY
|
||||
|
||||
复制指令,从上下文目录中复制文件或者目录到容器里指定路径。
|
||||
|
||||
格式:
|
||||
|
||||
```dockerfile
|
||||
COPY [--chown=<user>:<group>] <源路径1>... <目标路径>
|
||||
COPY [--chown=<user>:<group>] ["<源路径1>",... "<目标路径>"]
|
||||
```
|
||||
|
||||
**[--chown=<user>:<group>]**:可选参数,用户改变复制到容器内文件的拥有者和属组。
|
||||
|
||||
**<源路径>**:源文件或者源目录,这里可以是通配符表达式,其通配符规则要满足 Go 的 filepath.Match 规则。例如:
|
||||
|
||||
```dockerfile
|
||||
COPY hom* /mydir/
|
||||
COPY hom?.txt /mydir/
|
||||
```
|
||||
|
||||
**<目标路径>**:容器内的指定路径,该路径不用事先建好,路径不存在的话,会自动创建。
|
||||
|
||||
|
||||
|
||||
# Docker 实例
|
||||
@ -215,14 +336,11 @@ Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一
|
||||
|
||||
```shell
|
||||
docker pull mariadb:10.2
|
||||
```
|
||||
|
||||
```shell
|
||||
docker images
|
||||
docker run --name mariadb10.2 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mariadb:10.2
|
||||
```
|
||||
|
||||
## Docker Redis主从复制集群搭建
|
||||
## Docker Redis 主从复制集群搭建
|
||||
|
||||
拉取redis4.0.11镜像
|
||||
|
||||
@ -294,7 +412,7 @@ info Replication
|
||||
auth <slave-password>
|
||||
```
|
||||
|
||||
## Docker Redis哨兵高可用集群搭建
|
||||
## Docker Redis 哨兵高可用集群搭建
|
||||
|
||||
## Docker 安装 code-server
|
||||
|
||||
@ -384,7 +502,7 @@ docker pull mcr.microsoft.com/mssql/server
|
||||
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=Wyd210213" -p 1433:1433 --memory 2000M --name sqlserver2022 -v /etc/sqlserver_data:/var/opt/mssql -d mcr.microsoft.com/mssql/server
|
||||
```
|
||||
|
||||
## Docker安装PostgreSQL
|
||||
## Docker 安装 PostgreSQL
|
||||
|
||||
```shell
|
||||
docker pull postgres:latest
|
||||
|
||||
BIN
source/_posts/Docker/dockerfile2.png
Normal file
BIN
source/_posts/Docker/dockerfile2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 97 KiB |
BIN
source/_posts/Docker/image-20231101093813381.png
Normal file
BIN
source/_posts/Docker/image-20231101093813381.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 54 KiB |
@ -51,3 +51,31 @@ hexo new [layout] <title>
|
||||
```
|
||||
|
||||
新建一篇文章。如果没有设置 `layout` 的话,默认使用 [_config.yml](https://hexo.io/zh-cn/docs/configuration) 中的 `default_layout` 参数代替。如果标题包含空格的话,请使用引号括起来。
|
||||
|
||||
## 鼠标样式修改
|
||||
|
||||
1. 在\themes\butterfly\source\css路径下创建一个mouse.css文件,在文件中添加如下代码:
|
||||
```css
|
||||
body {
|
||||
cursor: url(https://cdn.jsdelivr.net/gh/sviptzk/HexoStaticFile@latest/Hexo/img/default.cur),
|
||||
default;
|
||||
}
|
||||
a,
|
||||
img {
|
||||
cursor: url(https://cdn.jsdelivr.net/gh/sviptzk/HexoStaticFile@latest/Hexo/img/pointer.cur),
|
||||
default;
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
2. 打开站点的主题配置文件_config.butterfly.yml,找到inject,在head处直接引入该文件:
|
||||
```yaml
|
||||
inject:
|
||||
head:
|
||||
- <link rel="stylesheet" href="/css/mouse.css">
|
||||
```
|
||||
|
||||
|
||||
|
||||
3. 重新部署,即可看到效果
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
# Mybatis
|
||||
|
||||
***
|
||||
---
|
||||
|
||||
|
||||
|
||||
## Maven引入Mybatis
|
||||
|
||||
|
||||
@ -27,3 +27,36 @@ Set-Content <文件名>.<扩展名后缀> -value "<内容>"
|
||||
Set-Content my.ini -value ""
|
||||
```
|
||||
|
||||
## 新建文件夹
|
||||
|
||||
```powershell
|
||||
New-Item data -ItemType Directory
|
||||
```
|
||||
|
||||
# 做 sudo 命令
|
||||
|
||||
在Windows系统上sudo对应的就是管理员权限了。
|
||||
|
||||
一般使用Powershell时,并不会管理员启动,当执行需要权限的命令(比如net start mysql),就需要以管理员打开新的窗口。
|
||||
|
||||
为了一步到位,这里给powershell创建一个`alias` -> `sudo` 来运行需要管理员权限的命令。
|
||||
|
||||
在文档目录中(在`powershell`执行`$profile`即可输出此文件路径),新建文件夹`WindowsPowerShell`,新建文件`Microsoft.PowerShell_profile.ps1`。
|
||||
|
||||
> 此文件是在启动Powershell时执行的脚本。set-alias 在退出后就会失效,所以放到启动脚本中。
|
||||
|
||||
追加如下代码,**然后重启Powershell窗口。**
|
||||
|
||||
```text
|
||||
function _sudo {
|
||||
$ss = "$args ; pause"
|
||||
Start-Process powershell -Verb runAs -ArgumentList $ss
|
||||
}
|
||||
set-alias -name sudo -value _sudo
|
||||
```
|
||||
|
||||
保存后发现无法加载,因为默认不加载外部脚本,管理员权限下 powershell 运行:
|
||||
|
||||
```text
|
||||
set-ExecutionPolicy RemoteSigned
|
||||
```
|
||||
|
||||
@ -209,9 +209,9 @@ println!("a is {0}, a again is {0}", a);
|
||||
```
|
||||
|
||||
在`{}`之间可以放一个数字,它将把之后的可变参数当做一个数组来访问,下标从0开始。
|
||||
|
||||
{% raw %}
|
||||
如果要输出 **{** 或 **}** 怎么办呢?格式字符串通过 **{{** 和 **}}** 分别转义代表 { 和 } 。但是其他常用转义字符与 C 语言里的转义字符一样,都是反斜杠开头的形式。
|
||||
|
||||
{% endraw %}
|
||||
```rust
|
||||
fn main() {
|
||||
println!("{{}}");
|
||||
|
||||
@ -17,6 +17,170 @@ vim 有6种工作模式。
|
||||
|
||||
vim 的各种工作模式可以通过不同的键进行切换,用户统一使用`ESC`键返回到普通模式。
|
||||
|
||||
# 光标移动命令
|
||||
## 命令模式
|
||||
|
||||
**用户刚刚启动vim,便进入里命令模式**
|
||||
|
||||
此状态下敲击键盘动作会被 Vim 识别为命令,而非输入字符,比如我们此时按下`i`,并不会输入一个字符,`i`被当作了一个命令。
|
||||
|
||||
以下是普通模式常用的几个命令:
|
||||
|
||||
- `i` -- 切换到输入模式,在光标当前位置开始输入文本。
|
||||
- `x` -- 删除当前光标所在处的字符。
|
||||
- `:` -- 切换到底线命令模式,以在最底一行输入命令。
|
||||
- `a` -- 进入插入模式,在光标下一个位置开始输入文本。
|
||||
- `o` -- 在当前行的下方插入一个新行,并进入插入模式。
|
||||
- `O` -- 在当前行的上方插入一个新行,并进入插入模式。
|
||||
- `dd` -- 删除当前行。
|
||||
- `yy` -- 复制当前行。
|
||||
- `p`(小写)-- 粘贴剪贴板内容到光标下方。
|
||||
- `P`(大写)-- 粘贴剪贴板内容到光标上方。
|
||||
- `u` -- 撤销上一次操作。
|
||||
- `Ctrl + r` -- 重做上一次撤销的操作。
|
||||
- `:w` -- 保存文件。
|
||||
- `:q` -- 退出 Vim 编辑器
|
||||
- `:q!` -- 强制退出 Vim 编辑器,不保存修改。
|
||||
|
||||
若要编辑文本,只需要启动 Vim,进入了命令模式,按下`i`切换到输入模式即可。
|
||||
|
||||
命令模式只有一些最基本的命令,因此仍要依靠**底线命令行模式**输入更多命令。
|
||||
|
||||
## 输入模式
|
||||
|
||||
在命令模式下按下`i`就进入了输入模式,使用`Esc`键可以返回到普通模式。
|
||||
|
||||
在输入模式中,可以使用以下按键:
|
||||
|
||||
- **字符按键以及Shifi组合**,输入字符
|
||||
- **ENTER**,回车键,换行
|
||||
- **BACK SPACE**,退格键,删除光标前一个字符
|
||||
- **DEL**,删除键,删除光标后一个字符
|
||||
- **方向键**,在文本中移动光标
|
||||
- **HOME/END**,移动光标到行首/行尾
|
||||
- **Page Up/Page Down**,上/下翻页
|
||||
- **Insert**,切换光标输入为输入\替换模式,光标将变成竖线/下划线
|
||||
- **ESC**,退出输入模式,切换到命令模式
|
||||
|
||||
## 底线命令模式
|
||||
|
||||
在命令模式下按下`:`(英文冒号)就进入了底线命令模式。
|
||||
|
||||
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
|
||||
|
||||
在底线命令模式中,基本的命令有(已经省略了冒号):
|
||||
|
||||
- :w: 保存文件
|
||||
- :q: 退出 Vim 编辑器
|
||||
- :wq: 保存文件并退出 Vim 编辑器
|
||||
- :q!: 强制退出 Vim 编辑器,不保存修改
|
||||
|
||||
按`ESC`键可随时退出底线命令模式。
|
||||
|
||||
简单的说,我们可以将这三个模式想成底下的图标来表示:
|
||||
|
||||

|
||||
|
||||
# Vim 的按键说明
|
||||
|
||||
## 第一部分:命令模式可用的光标移动、复制粘贴、搜索替换等
|
||||
|
||||
<center>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2">移动光标的方法</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>h 或 向左箭头键(←)</td>
|
||||
<td>光标向左移动一个字符</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>j 或 向下箭头键(↓)</td>
|
||||
<td>光标向下移动一个字符</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>k 或 向上箭头键(↑)</td>
|
||||
<td>光标向上移动一个字符</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>l 或 向右箭头键(→)</td>
|
||||
<td>光标向右移动一个字符</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">如果你将右手放在键盘上的话,你会发现 hjkl 是排列在一起的,因此可以使用这四个按钮来移动光标。如果想要进行多次移动的话,例如向下移动 30 行,可以使用 "30j" 或 "30↓" 的组合按键,亦即加上想要进行的次数(数字)后,按下动作即可!</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Ctrl + f</td>
|
||||
<td>屏幕『向下』移动一页,相当于 Page Down 按键 (常用)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Ctrl + b</td>
|
||||
<td>屏幕『向上』移动一页,相当于 Page Up 按键 (常用)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Ctrl + d</td>
|
||||
<td>屏幕『向下』移动半页</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Ctrl + u</td>
|
||||
<td>屏幕『向上』移动半页</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>+</td>
|
||||
<td>光标移动到非空格符的下一行</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>-</td>
|
||||
<td>光标移动到非空格符的上一行</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>n『空格』</td>
|
||||
<td>那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20『空格』 则光标会向后面移动 20 个字符距离。</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>0 或功能键[Home]</td>
|
||||
<td>这是数字『 0 』:移动到这一行的最前面字符处 (常用)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>$ 或功能键[End]</td>
|
||||
<td>移动到这一行的最后面字符处(常用)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>H</td>
|
||||
<td>光标移动到这个屏幕的最上方那一行的第一个字符</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>M</td>
|
||||
<td>光标移动到这个屏幕的中央那一行的第一个字符</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>L</td>
|
||||
<td>光标移动到这个屏幕的最下方那一行的第一个字符</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>G</td>
|
||||
<td>移动到这个档案的最后一行(常用)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>nG</td>
|
||||
<td>n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>gg</td>
|
||||
<td>移动到这个档案的第一行,相当于 1G 啊! (常用)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>n『 Enter 』</td>
|
||||
<td>n 为数字。光标向下移动 n 行(常用)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2">搜索替换</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
</center>
|
||||
|
||||
查找下一个 n 查找上一个 N
|
||||
|
||||
@ -1,9 +1,10 @@
|
||||
---
|
||||
|
||||
title: tags
|
||||
date: 2018-09-30 18:23:38
|
||||
type: "tags"
|
||||
layout: "tags"
|
||||
---
|
||||
|
||||
|
||||
|
||||
# 快捷键
|
||||
|
||||
## 注释:Ctrl+K+C
|
||||
|
||||
133
source/_posts/新建 Markdown File.md
Normal file
133
source/_posts/新建 Markdown File.md
Normal file
@ -0,0 +1,133 @@
|
||||
# Furion
|
||||
|
||||
## 脚手架
|
||||
|
||||
Furion+SqlSugar WebAPI
|
||||
|
||||

|
||||
|
||||
从.NET5到.NET8都可以选择
|
||||
|
||||

|
||||
|
||||
## 项目结构
|
||||
|
||||

|
||||
|
||||
## 引用
|
||||
|
||||
Core -> Application -> Web.Core -> Web.Entry
|
||||
|
||||
↓ -> System -> Web.Core -> Web.Entry
|
||||
|
||||
依赖在Core中安装
|
||||
|
||||
## 依赖安装
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
# Blog.Core
|
||||
|
||||
## 项目结构
|
||||
|
||||
### 后端
|
||||
|
||||

|
||||
|
||||
### 前端
|
||||
|
||||

|
||||
|
||||
## 引用
|
||||
|
||||
Model -> Common -> IServices -> Services -> Entensions -> Api
|
||||
|
||||
-> Tasks
|
||||
|
||||
## 依赖安装
|
||||
|
||||

|
||||
|
||||
`AutoMapper` -> **Model**
|
||||
|
||||
`AutoMapper.Extensions.Microsoft.DependencyInjection` -> **Model**
|
||||
|
||||
`log4net` -> **Common**
|
||||
|
||||
`Autofac.Extras.DynamicProxy` -> **Extensions**
|
||||
|
||||
`Autofac.Extensions.DependencyInjection` -> **Extensions**
|
||||
|
||||
`Newtonsoft.Json` -> **Extensions**
|
||||
|
||||
`Quartz` -> **Tasks**
|
||||
|
||||
`SqlSugarCore` -> **Model**
|
||||
|
||||
`StackExchange.Redis` -> **Common**
|
||||
|
||||
`FluentValidation.AspNetCore` -> **Api**
|
||||
|
||||
`FluentValidation.DependencyInjectionExtensions` -> **Api**
|
||||
|
||||
|
||||
|
||||
# ZRAdmin.NET
|
||||
|
||||
## 项目结构
|
||||
|
||||
### 后端
|
||||
|
||||

|
||||
|
||||
### 前端
|
||||
|
||||

|
||||
|
||||
[ZRAdmin.NET在线文档 (izhaorui.cn)](http://www.izhaorui.cn/doc/)
|
||||
|
||||
## 引用
|
||||
|
||||
common -> Tasks ->
|
||||
|
||||
Model -> Repository -> Service -> WebApi
|
||||
|
||||
Infrastructure ->
|
||||
|
||||
项目结构比较像Java的若依框架
|
||||
|
||||
## 依赖安装
|
||||
|
||||

|
||||
|
||||
# 优缺点对比
|
||||
|
||||
| | Furion | Blog.Core | ZRAdmin.NET |
|
||||
| ------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
|
||||
| 项目结构 | 跟MVC三层架构还是有不少差别,可能有DDD的思想在里面,只是业务层做了系统和应用层区分,和B端的ERP有很大差别 | 比较符合MVC三层架构,但是其中的时间总线和路由,是项目用不上的,如果做拆分,会有依赖引用问题 | 比较像Java的若依框架,经典三层架构,只是Infrastructure ,其实可以合并到Common中 |
|
||||
| 依赖安装 | Furion集成不少依赖,虽然开发方便,但由于都是集成的,后续有升级难度,定时任务是框架重写了一套,没有用到Quartz.Net | 集成的都是常用的,但是也集成了不少微服务开发和分布式总线上才用到的,会显得比较臃肿 | 集成的有常用的,有较新的,比如NLog,Mapster,但实际看来是比Log4Net和AutoMapper性能要强,Autofac没有集成,使用ASP.Net自带的封装注解,Redis客户端工具类使用的是CSRedisCore,没有用StackExchange.Redis,但是据说存在不定时连接超时的问题,还有就是没有IdentityServer 4的集成 |
|
||||
| 文档 | 全 | 较全,但文档日期停留在 2021-08-21 | 全,比较像Java的若依框架文档 |
|
||||
| 近期维护更新 | 常有,最近的是2小时前,但是仔细看提交记录,其实更新主要还是在文档上 | 有,最近的是20小时前,着重于日志,多租户方面的更新 | 有,最近的是15天前,目前项目总体进入维护状态,大的改动没有,比较稳定,只有针对ISSUE的提交 |
|
||||
| 其他 | 脚手架方便搭建,但是Furion更像是一个工具包集合,而不是框架,没有Admin等功能,所以这部分还需要自己去完成,因为这只是个架子 | 有博客端也有Admin端,但是仍是使用的Vue2,技术栈较久,今年年末就会停止维护,API没有进行分层,都写在一个JS中,后期不好维护,层叠样式表使用CSS,相比较SCSS,语法上较为麻烦 | 有Vue2,也有Vue3版的管理端,可以着重于应用业务上的开发,唯一的是前端使用了JavaScript开发,如果是TypeScript会更好,前端风格跟Java的若依框架前端基本一致,功能也是。后端Redis没有默认开启,需要手动集成,作者很贴心的留了注解,ORM用了sqlsugar,用了多租户,但是配置是在代码中,其实自己给移到配置文件里是最好的 |
|
||||
| 推荐指数 | 3 | 4 | 5 |
|
||||
|
||||
# 后端开发环境
|
||||
|
||||
`Visual Studio 2022`
|
||||
|
||||
**dotnet-sdk-7.0.202-win-x64.exe** [下载 .NET 7.0 SDK (v7.0.202) - Windows x64 Installer (microsoft.com)](https://dotnet.microsoft.com/zh-cn/download/dotnet/thank-you/sdk-7.0.202-windows-x64-installer)
|
||||
|
||||
# 前端开发环境
|
||||
|
||||
`Visual Studio Code`
|
||||
|
||||
安装扩展
|
||||
|
||||
`Volar` `i18n Ally`
|
||||
|
||||
**node-v16.20.1-x64.msi** [Index of /download/release/v16.20.0/ (nodejs.org)](https://nodejs.org/download/release/v16.20.0/)
|
||||
|
||||
https://nodejs.org/download/release/v16.20.0/node-v16.20.0-x64.msi
|
||||
|
||||
9
themes/butterfly/source/css/mouse.css
Normal file
9
themes/butterfly/source/css/mouse.css
Normal file
@ -0,0 +1,9 @@
|
||||
body {
|
||||
cursor: url(https://cdn.jsdelivr.net/gh/sviptzk/HexoStaticFile@latest/Hexo/img/default.cur),
|
||||
default;
|
||||
}
|
||||
a,
|
||||
img {
|
||||
cursor: url(https://cdn.jsdelivr.net/gh/sviptzk/HexoStaticFile@latest/Hexo/img/pointer.cur),
|
||||
default;
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user