Compare commits
3 Commits
f9f40b362a
...
1b305233c1
Author | SHA1 | Date |
---|---|---|
|
1b305233c1 | |
|
0b599dfea3 | |
|
96420e93d7 |
|
@ -0,0 +1,60 @@
|
||||||
|
## **1. 基础移动(Navigation)**
|
||||||
|
- **字符移动**:
|
||||||
|
- `h` ← / `j` ↓ / `k` ↑ / `l` →
|
||||||
|
- 方向键也能用,但 Vim 提倡用 `hjkl` 保持手不离键盘。
|
||||||
|
- **单词移动**:
|
||||||
|
- `w` → 跳到下一个单词开头
|
||||||
|
- `b` ← 跳到上一个单词开头
|
||||||
|
- `e` → 跳到当前单词末尾
|
||||||
|
- **行内跳转**:
|
||||||
|
- `0` 跳到行首,`^` 跳到第一个非空字符
|
||||||
|
- `$` 跳到行尾
|
||||||
|
- `f<char>` 向后搜索字符(如 `fa` 跳到下一个 `a`)
|
||||||
|
- **屏幕移动**:
|
||||||
|
- `Ctrl + u` 上翻半屏,`Ctrl + d` 下翻半屏
|
||||||
|
- `gg` 跳到文件开头,`G` 跳到文件末尾
|
||||||
|
- `:<行号>` 跳转到指定行(如 `:42` 跳到第 42 行)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## **2. 编辑文本(Editing)**
|
||||||
|
- **插入模式**:
|
||||||
|
- `i` 在光标前插入
|
||||||
|
- `a` 在光标后插入
|
||||||
|
- `I` 在行首插入,`A` 在行尾插入
|
||||||
|
- `o` 在下一行插入,`O` 在上一行插入
|
||||||
|
- **删除**:
|
||||||
|
- `x` 删除当前字符
|
||||||
|
- `dw` 删除一个单词
|
||||||
|
- `dd` 删除整行
|
||||||
|
- `D` 删除从光标到行尾
|
||||||
|
- **复制/粘贴**:
|
||||||
|
- `yy` 复制当前行
|
||||||
|
- `p` 粘贴到光标后,`P` 粘贴到光标前
|
||||||
|
- `yiw` 复制当前单词
|
||||||
|
- **撤销/重做**:
|
||||||
|
- `u` 撤销
|
||||||
|
- `Ctrl + r` 重做
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## **3. 选择与可视化模式(Visual Mode)**
|
||||||
|
- `v` 进入字符选择模式
|
||||||
|
- `V` 进入行选择模式
|
||||||
|
- `Ctrl + v` 进入块选择模式(适合多行编辑)
|
||||||
|
- 选中后可以用 `d`(删除)、`y`(复制)、`>`(缩进)等操作
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## **4. 搜索与替换(Search & Replace)**
|
||||||
|
- `/` + 关键词 → 搜索(`n` 下一个,`N` 上一个)
|
||||||
|
- `:%s/old/new/g` → 全局替换(`g` 表示所有匹配)
|
||||||
|
- `*` 快速搜索当前光标下的单词
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## **5. 组合命令(Power Moves)**
|
||||||
|
- `di"` → 删除引号内的内容
|
||||||
|
- `ciw` → 修改当前单词
|
||||||
|
- `dt<char>` → 删除直到某个字符(如 `dt)` 删除到 `)`)
|
||||||
|
- `.` → 重复上一次操作
|
|
@ -0,0 +1,109 @@
|
||||||
|
## 基本移动命令
|
||||||
|
|
||||||
|
| 命令 | 描述 |
|
||||||
|
| ------ | -------------------------- |
|
||||||
|
| `h` | 向左移动 |
|
||||||
|
| `j` | 向下移动 |
|
||||||
|
| `k` | 向上移动 |
|
||||||
|
| `l` | 向右移动 |
|
||||||
|
| `w` | 移动到下一个单词开头 |
|
||||||
|
| `b` | 移动到上一个单词开头 |
|
||||||
|
| `e` | 移动到当前单词末尾 |
|
||||||
|
| `0` | 移动到行首 |
|
||||||
|
| `^` | 移动到行首第一个非空白字符 |
|
||||||
|
| `$` | 移动到行尾 |
|
||||||
|
| `gg` | 移动到文件开头 |
|
||||||
|
| `G` | 移动到文件末尾 |
|
||||||
|
| `:[n]` | 移动到第 n 行 |
|
||||||
|
|
||||||
|
## 插入模式
|
||||||
|
|
||||||
|
| 命令 | 描述 |
|
||||||
|
| ---- | -------------------------- |
|
||||||
|
| `i` | 在光标前插入 |
|
||||||
|
| `a` | 在光标后插入 |
|
||||||
|
| `I` | 在行首插入 |
|
||||||
|
| `A` | 在行尾插入 |
|
||||||
|
| `o` | 在当前行下方新建一行并插入 |
|
||||||
|
| `O` | 在当前行上方新建一行并插入 |
|
||||||
|
|
||||||
|
## 编辑命令
|
||||||
|
|
||||||
|
| 命令 | 描述 |
|
||||||
|
| -------- | -------------------- |
|
||||||
|
| `x` | 删除当前字符 |
|
||||||
|
| `dd` | 删除当前行 |
|
||||||
|
| `dw` | 删除到下一个单词开头 |
|
||||||
|
| `d$` | 删除到行尾 |
|
||||||
|
| `d^` | 删除到行首 |
|
||||||
|
| `yy` | 复制当前行 |
|
||||||
|
| `p` | 粘贴 |
|
||||||
|
| `u` | 撤销 |
|
||||||
|
| `Ctrl+r` | 重做 |
|
||||||
|
| `.` | 重复上一次修改 |
|
||||||
|
|
||||||
|
## 搜索与替换
|
||||||
|
|
||||||
|
| 命令 | 描述 |
|
||||||
|
| ---------------- | ------------------- |
|
||||||
|
| `/pattern` | 向前搜索 pattern |
|
||||||
|
| `?pattern` | 向后搜索 pattern |
|
||||||
|
| `n` | 下一个匹配项 |
|
||||||
|
| `N` | 上一个匹配项 |
|
||||||
|
| `:%s/old/new/g` | 全局替换 old 为 new |
|
||||||
|
| `:%s/old/new/gc` | 全局替换,每次确认 |
|
||||||
|
|
||||||
|
## 可视模式
|
||||||
|
|
||||||
|
| 命令 | 描述 |
|
||||||
|
| -------- | ---------------- |
|
||||||
|
| `v` | 进入字符可视模式 |
|
||||||
|
| `V` | 进入行可视模式 |
|
||||||
|
| `Ctrl+v` | 进入块可视模式 |
|
||||||
|
|
||||||
|
## 窗口管理
|
||||||
|
|
||||||
|
| 命令 | 描述 |
|
||||||
|
| ------------- | -------------- |
|
||||||
|
| `:sp [file]` | 水平分割窗口 |
|
||||||
|
| `:vsp [file]` | 垂直分割窗口 |
|
||||||
|
| `Ctrl+w h` | 移动到左侧窗口 |
|
||||||
|
| `Ctrl+w j` | 移动到下方窗口 |
|
||||||
|
| `Ctrl+w k` | 移动到上方窗口 |
|
||||||
|
| `Ctrl+w l` | 移动到右侧窗口 |
|
||||||
|
| `Ctrl+w c` | 关闭当前窗口 |
|
||||||
|
| `Ctrl+w o` | 只保留当前窗口 |
|
||||||
|
|
||||||
|
## 标签页
|
||||||
|
|
||||||
|
| 命令 | 描述 |
|
||||||
|
| ---------------- | -------------- |
|
||||||
|
| `:tabnew [file]` | 新建标签页 |
|
||||||
|
| `gt` | 下一个标签页 |
|
||||||
|
| `gT` | 上一个标签页 |
|
||||||
|
| `:tabclose` | 关闭当前标签页 |
|
||||||
|
|
||||||
|
## 文件操作
|
||||||
|
|
||||||
|
| 命令 | 描述 |
|
||||||
|
| --------- | -------------- |
|
||||||
|
| `:e file` | 打开文件 |
|
||||||
|
| `:w` | 保存文件 |
|
||||||
|
| `:w file` | 另存为 file |
|
||||||
|
| `:q` | 退出 |
|
||||||
|
| `:q!` | 强制退出不保存 |
|
||||||
|
| `:wq` | 保存并退出 |
|
||||||
|
| `:x` | 保存并退出 |
|
||||||
|
|
||||||
|
## 其他实用命令
|
||||||
|
|
||||||
|
| 命令 | 描述 |
|
||||||
|
| ----------------- | --------------------------------- |
|
||||||
|
| `*` | 搜索当前光标下的单词 |
|
||||||
|
| `#` | 反向搜索当前光标下的单词 |
|
||||||
|
| `:%!command` | 将当前缓冲区内容通过 command 过滤 |
|
||||||
|
| `:r!command` | 将 command 的输出插入到当前位置 |
|
||||||
|
| `:set nu` | 显示行号 |
|
||||||
|
| `:set nonu` | 隐藏行号 |
|
||||||
|
| `:set hlsearch` | 高亮搜索结果 |
|
||||||
|
| `:set nohlsearch` | 取消高亮搜索结果 |
|
|
@ -972,8 +972,6 @@ spring:
|
||||||
|
|
||||||
更多配置参考下面图片,全局搜索`RoutePredicateFactory`,之后`Ctrl+H`找到所有方法。
|
更多配置参考下面图片,全局搜索`RoutePredicateFactory`,之后`Ctrl+H`找到所有方法。
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
#### 常用断言类型
|
#### 常用断言类型
|
||||||
|
|
||||||
##### Path 断言
|
##### Path 断言
|
||||||
|
|
|
@ -0,0 +1,128 @@
|
||||||
|
name: cloud-services
|
||||||
|
services:
|
||||||
|
mysql:
|
||||||
|
container_name: mysql_master
|
||||||
|
image: mysql:8.0.33
|
||||||
|
ports:
|
||||||
|
- "3306:3306"
|
||||||
|
environment:
|
||||||
|
- MYSQL_ROOT_PASSWORD=123456
|
||||||
|
- TZ=Asia/Shanghai
|
||||||
|
volumes:
|
||||||
|
# - ~/docker/docker_data/mysql/mysql_master/etc/my.cnf:/etc/my.cnf # 如果需要创建配置文件
|
||||||
|
- ~/docker/docker_data/mysql/mysql_master/etc/mysql:/etc/mysql/conf.d
|
||||||
|
- ~/docker/docker_data/mysql/mysql_master/data:/var/lib/mysql
|
||||||
|
- ~/docker/docker_data/mysql/mysql_master/backup:/backup
|
||||||
|
command:
|
||||||
|
- "--log-bin=mysql-bin"
|
||||||
|
- "--server-id=1"
|
||||||
|
- "--collation-server=utf8mb4_unicode_ci"
|
||||||
|
- "--character-set-server=utf8mb4"
|
||||||
|
- "--lower-case-table-names=1"
|
||||||
|
restart: always
|
||||||
|
privileged: true
|
||||||
|
networks:
|
||||||
|
- cloud
|
||||||
|
|
||||||
|
redis:
|
||||||
|
container_name: redis_master
|
||||||
|
image: redis:7.0.10
|
||||||
|
ports:
|
||||||
|
- "6379:6379"
|
||||||
|
volumes:
|
||||||
|
# - ~/docker/docker_data/redis_master/redis.conf:/etc/redis/redis.conf # 需要创建配置文件
|
||||||
|
- ~/docker/docker_data/redis_master:/etc/redis # 之后要配置文件可以直接在这里创建 redis.conf
|
||||||
|
- ~/docker/docker_data/redis_master/data:/data
|
||||||
|
command:
|
||||||
|
- "--appendonly yes"
|
||||||
|
- "--daemonize no"
|
||||||
|
- "--requirepass 123456"
|
||||||
|
- "--tcp-keepalive 300"
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- cloud
|
||||||
|
|
||||||
|
minio:
|
||||||
|
image: minio/minio
|
||||||
|
container_name: minio_master
|
||||||
|
ports:
|
||||||
|
- "9000:9000"
|
||||||
|
- "9090:9090"
|
||||||
|
volumes:
|
||||||
|
- ~/docker/docker_data/minio/data:/data
|
||||||
|
environment:
|
||||||
|
- MINIO_ROOT_USER=bunny
|
||||||
|
- MINIO_ROOT_PASSWORD=02120212
|
||||||
|
command: "server /data --console-address :9090"
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- cloud
|
||||||
|
|
||||||
|
mongodb:
|
||||||
|
image: mongo:latest
|
||||||
|
container_name: mongodb
|
||||||
|
restart: always
|
||||||
|
privileged: true
|
||||||
|
ports:
|
||||||
|
- "27017:27017"
|
||||||
|
volumes:
|
||||||
|
- ~/docker/docker_data/mongo/data:/data/db
|
||||||
|
- ~/docker/docker_data/mongo/conf:/data/configdb
|
||||||
|
- ~/docker/docker_data/mongo/logs:/data/log
|
||||||
|
command: "mongod --config /data/configdb/mongod.conf"
|
||||||
|
networks:
|
||||||
|
- cloud
|
||||||
|
|
||||||
|
rabbitmq:
|
||||||
|
image: rabbitmq:management
|
||||||
|
container_name: rabbitmq
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "5672:5672"
|
||||||
|
- "15672:15672"
|
||||||
|
volumes:
|
||||||
|
- ~/docker/docker_data/rabbitmq/data:/var/lib/rabbitmq
|
||||||
|
- ~/docker/docker_data/rabbitmq/conf:/etc/rabbitmq
|
||||||
|
- ~/docker/docker_data/rabbitmq/log:/var/log/rabbitmq
|
||||||
|
environment:
|
||||||
|
- RABBITMQ_DEFAULT_USER=admin
|
||||||
|
- RABBITMQ_DEFAULT_PASS=admin
|
||||||
|
- RABBITMQ_DEFAULT_VHOST=/
|
||||||
|
networks:
|
||||||
|
- cloud
|
||||||
|
|
||||||
|
nacos:
|
||||||
|
image: nacos/nacos-server:v2.4.3
|
||||||
|
container_name: nacos
|
||||||
|
ports:
|
||||||
|
- "8848:8848"
|
||||||
|
- "9848:9848"
|
||||||
|
environment:
|
||||||
|
- MODE=standalone
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- cloud
|
||||||
|
|
||||||
|
sentinel:
|
||||||
|
image: bladex/sentinel-dashboard:1.8.8
|
||||||
|
container_name: sentinel
|
||||||
|
ports:
|
||||||
|
- "8858:8858"
|
||||||
|
privileged: true
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- cloud
|
||||||
|
|
||||||
|
seata-server:
|
||||||
|
image: apache/seata-server:2.3.0.jdk21
|
||||||
|
container_name: seata-server
|
||||||
|
ports:
|
||||||
|
- "8091:8091"
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- cloud
|
||||||
|
|
||||||
|
networks: # 定义网络
|
||||||
|
cloud: # 定义名为 auth 的网络
|
||||||
|
name: cloud # 网络名称为 auth
|
||||||
|
driver: bridge # 使用 bridge 驱动(默认)
|
|
@ -104,134 +104,3 @@ db.createUser({ user: 'admin', pwd: '02120212', roles: [ { role: "root", db: "ad
|
||||||
| **重启服务** | docker-compose restart | docker compose restart |
|
| **重启服务** | docker-compose restart | docker compose restart |
|
||||||
| **构建镜像** | docker-compose build | docker compose build |
|
| **构建镜像** | docker-compose build | docker compose build |
|
||||||
|
|
||||||
```yaml
|
|
||||||
name: cloud-services
|
|
||||||
services:
|
|
||||||
mysql:
|
|
||||||
container_name: mysql_master
|
|
||||||
image: mysql:8.0.33
|
|
||||||
ports:
|
|
||||||
- "3306:3306"
|
|
||||||
environment:
|
|
||||||
- MYSQL_ROOT_PASSWORD=123456
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
volumes:
|
|
||||||
# - ~/docker/docker_data/mysql/mysql_master/etc/my.cnf:/etc/my.cnf # 如果需要创建配置文件
|
|
||||||
- ~/docker/docker_data/mysql/mysql_master/etc/mysql:/etc/mysql/conf.d
|
|
||||||
- ~/docker/docker_data/mysql/mysql_master/data:/var/lib/mysql
|
|
||||||
- ~/docker/docker_data/mysql/mysql_master/backup:/backup
|
|
||||||
command:
|
|
||||||
- "--log-bin=mysql-bin"
|
|
||||||
- "--server-id=1"
|
|
||||||
- "--collation-server=utf8mb4_unicode_ci"
|
|
||||||
- "--character-set-server=utf8mb4"
|
|
||||||
- "--lower-case-table-names=1"
|
|
||||||
restart: always
|
|
||||||
privileged: true
|
|
||||||
networks:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
redis:
|
|
||||||
container_name: redis_master
|
|
||||||
image: redis:7.0.10
|
|
||||||
ports:
|
|
||||||
- "6379:6379"
|
|
||||||
volumes:
|
|
||||||
# - ~/docker/docker_data/redis_master/redis.conf:/etc/redis/redis.conf # 需要创建配置文件
|
|
||||||
- ~/docker/docker_data/redis_master:/etc/redis # 之后要配置文件可以直接在这里创建 redis.conf
|
|
||||||
- ~/docker/docker_data/redis_master/data:/data
|
|
||||||
command:
|
|
||||||
- "--appendonly yes"
|
|
||||||
- "--daemonize no"
|
|
||||||
- "--requirepass 123456"
|
|
||||||
- "--tcp-keepalive 300"
|
|
||||||
restart: always
|
|
||||||
networks:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
minio:
|
|
||||||
image: minio/minio
|
|
||||||
container_name: minio_master
|
|
||||||
ports:
|
|
||||||
- "9000:9000"
|
|
||||||
- "9090:9090"
|
|
||||||
volumes:
|
|
||||||
- ~/docker/docker_data/minio/data:/data
|
|
||||||
environment:
|
|
||||||
- MINIO_ROOT_USER=bunny
|
|
||||||
- MINIO_ROOT_PASSWORD=02120212
|
|
||||||
command: "server /data --console-address :9090"
|
|
||||||
restart: always
|
|
||||||
networks:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
mongodb:
|
|
||||||
image: mongo:latest
|
|
||||||
container_name: mongodb
|
|
||||||
restart: always
|
|
||||||
privileged: true
|
|
||||||
ports:
|
|
||||||
- "27017:27017"
|
|
||||||
volumes:
|
|
||||||
- ~/docker/docker_data/mongo/data:/data/db
|
|
||||||
- ~/docker/docker_data/mongo/conf:/data/configdb
|
|
||||||
- ~/docker/docker_data/mongo/logs:/data/log
|
|
||||||
command: "mongod --config /data/configdb/mongod.conf"
|
|
||||||
networks:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
rabbitmq:
|
|
||||||
image: rabbitmq:management
|
|
||||||
container_name: rabbitmq
|
|
||||||
restart: unless-stopped
|
|
||||||
ports:
|
|
||||||
- "5672:5672"
|
|
||||||
- "15672:15672"
|
|
||||||
volumes:
|
|
||||||
- ~/docker/docker_data/rabbitmq/data:/var/lib/rabbitmq
|
|
||||||
- ~/docker/docker_data/rabbitmq/conf:/etc/rabbitmq
|
|
||||||
- ~/docker/docker_data/rabbitmq/log:/var/log/rabbitmq
|
|
||||||
environment:
|
|
||||||
- RABBITMQ_DEFAULT_USER=admin
|
|
||||||
- RABBITMQ_DEFAULT_PASS=admin
|
|
||||||
- RABBITMQ_DEFAULT_VHOST=/
|
|
||||||
networks:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
nacos:
|
|
||||||
image: nacos/nacos-server:v2.4.3
|
|
||||||
container_name: nacos
|
|
||||||
ports:
|
|
||||||
- "8848:8848"
|
|
||||||
- "9848:9848"
|
|
||||||
environment:
|
|
||||||
- MODE=standalone
|
|
||||||
restart: always
|
|
||||||
networks:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
sentinel:
|
|
||||||
image: bladex/sentinel-dashboard:1.8.8
|
|
||||||
container_name: sentinel
|
|
||||||
ports:
|
|
||||||
- "8858:8858"
|
|
||||||
privileged: true
|
|
||||||
restart: always
|
|
||||||
networks:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
seata-server:
|
|
||||||
image: apache/seata-server:2.3.0.jdk21
|
|
||||||
container_name: seata-server
|
|
||||||
ports:
|
|
||||||
- "8091:8091"
|
|
||||||
restart: always
|
|
||||||
networks:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
networks: # 定义网络
|
|
||||||
cloud: # 定义名为 auth 的网络
|
|
||||||
name: cloud # 网络名称为 auth
|
|
||||||
driver: bridge # 使用 bridge 驱动(默认)
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue