tmux · vim 8 · ranger · fzf · ripgrep — 五件套从入门到实战
tmux · vim 8 · ranger · fzf · ripgrep — 五件套从入门到实战
生成于 2026-08-06 · 在你的终端里,键盘就是一切
目录
1. tmux — 终端复用器
让一个终端窗口变成多个,断线不丢任务
tmux(Terminal Multiplexer)的核心能力是会话持久化和窗口/面板分割。你在 tmux 里运行的所有程序,即使关闭终端窗口、断开 SSH,依然在后台运行,重新 attach 就能回到原样。
核心概念
| 概念 | 说明 | 类比 |
|---|---|---|
| Session 会话 | 一个独立的工作环境,包含多个窗口 | 像一台虚拟电脑 |
| Window 窗口 | 会话内的标签页,每个窗口占满整个终端 | 像浏览器的标签页 |
| Pane 面板 | 窗口内的分割区域,可以同时看到多个终端 | 像分屏 |
典型场景
- 长时间任务不断线:跑训练、编译、下载等耗时任务时放进 tmux,断开 SSH 后任务继续执行,回来 attach 即可恢复。
- 多面板同时看:一个面板写代码、一个面板看日志、一个面板跑测试,不用切换窗口。
- 多项目并行:每个项目一个 session,随时切换,互不干扰。
- 结对编程:两人 attach 同一个 session,实时看到对方操作。
基本操作
前缀键:所有 tmux 快捷键都需要先按
Ctrl+b(称为 prefix),松开后再按功能键。
会话管理
# 新建会话
tmux # 匿名会话
tmux new -s work # 名为 work 的会话
# 脱离会话(任务继续在后台运行)
Ctrl+b d # 在 tmux 内按
# 查看所有会话
tmux ls
# 重新进入会话
tmux attach -t work # attach 到 work 会话
tmux a # attach 到最近一个会话
# 关闭会话
tmux kill-session -t work
# 重命名会话
Ctrl+b $
窗口管理
| 操作 | 快捷键 |
|---|---|
| 新建窗口 | Ctrl+b c |
| 下一个窗口 | Ctrl+b n |
| 上一个窗口 | Ctrl+b p |
| 按编号切换 | Ctrl+b 数字 |
| 列表选择 | Ctrl+b w |
| 重命名窗口 | Ctrl+b , |
| 关闭窗口 | Ctrl+b & |
面板分割
| 操作 | 快捷键 |
|---|---|
| 左右分割 | Ctrl+b % |
| 上下分割 | Ctrl+b " |
| 切换面板 | Ctrl+b 方向键 |
| 顺时针切换 | Ctrl+b o |
| 关闭当前面板 | Ctrl+b x 或输入 exit |
| 面板全屏/还原 | Ctrl+b z |
| 调整面板大小 | Ctrl+b 然后按住 Ctrl+方向键 |
| 面板布局切换 | Ctrl+b Space |
实用配置(~/.tmux.conf)
# 鼠标支持(可点击切换面板、拖拽调整大小)
set -g mouse on
# 基于终端启动的序号从 1 开始(0 太远了)
set -g base-index 1
setw -g pane-base-index 1
# 更直观的分割键
bind | split-window -h
bind - split-window -v
# 256 色支持
set -g default-terminal "screen-256color"
# 状态栏样式
set -g status-bg colour235
set -g status-fg colour137
set -g status-left "[#S] "
set -g status-right "%H:%M | %Y-%m-%d"
修改后生效:tmux source-file ~/.tmux.conf
记忆口诀:
detach(脱离)、create(新建窗口)、%像竖线(左右分)、"像横线(上下分)。
2. vim 8 — 文本编辑器
模态编辑的王者,键盘即一切
vim 的核心思想是模态编辑:不同模式下按键含义完全不同。Normal 模式用来导航和操作,Insert 模式用来输入文本,Visual 模式用来选择。掌握模态编辑后,编辑速度远超鼠标操作。vim 8 新增了异步任务、内置终端、包管理等功能。
四种模式
| 模式 | 进入方式 | 用途 |
|---|---|---|
| Normal 模式 | Esc |
导航、复制、粘贴、删除、搜索 |
| Insert 模式 | i / a / o |
输入文字 |
| Visual 模式 | v / V / Ctrl+v |
选中文本(字符/行/块) |
| Command 模式 | : |
执行命令(保存、替换、设置等) |
典型场景
- 快速编辑配置文件:SSH 到服务器后直接
vim nginx.conf,改完:wq即可,无需 GUI。 - 写代码:配合插件(如 coc.nvim)实现补全、跳转、Lint,轻量级 IDE。
- 批量替换:全文件批量替换变量名,
:%s/old/new/g一行搞定。 - 多行编辑:Visual Block 模式(
Ctrl+v)批量添加注释、修改前缀。
移动(Normal 模式)
| 按键 | 功能 |
|---|---|
h j k l |
左 下 上 右 |
w / b |
下一个/上一个单词开头 |
e |
单词末尾 |
0 / ` |
按键 |
| ------ | ------ |
h j k l |
左 下 上 右 |
w / b |
下一个/上一个单词开头 |
e |
单词末尾 |
| 行首 / 行尾 | |
gg / G |
文件开头 / 文件末尾 |
{ / } |
上/下一个空行(段落跳转) |
Ctrl+d / Ctrl+u |
向下/上翻半页 |
Ctrl+f / Ctrl+b |
向下/上翻整页 |
* / # |
搜索光标下的词(下一个/上一个) |
gd |
跳到局部定义 |
编辑操作
| 按键 | 功能 |
|---|---|
i |
光标前插入 |
a |
光标后插入 |
o |
下方新开一行插入 |
O |
上方新开一行插入 |
x |
删除光标处字符 |
dd |
删除整行 |
dw |
删除一个单词 |
cc |
删除整行并进入插入模式 |
cw |
删除单词并进入插入模式 |
u |
撤销 |
Ctrl+r |
重做 |
yy |
复制整行 |
p / P |
粘贴到下方 / 上方 |
. |
重复上一次操作(最强快捷键) |
常用命令(Command 模式)
:w " 保存
:q " 退出
:wq " 保存并退出
:q! " 不保存强制退出
:w new.txt " 另存为
:%s/旧/新/g " 全文替换
:%s/旧/新/gc " 全文替换(逐个确认)
:10,20s/旧/新/g " 第10-20行替换
:set number " 显示行号
:set relativenumber " 相对行号
:set paste " 粘贴模式(防止缩进错乱)
:set nopaste " 关闭粘贴模式
:!ls " 执行外部命令
:read !date " 把命令输出插入当前文件
:sp 文件名 " 水平分屏打开文件
:vs 文件名 " 垂直分屏打开文件
Ctrl+w 方向键 " 切换分屏
Visual Block 批量操作
# 批量加注释:
1. Ctrl+v 进入块选模式
2. j/k 选中要注释的行
3. Shift+i 输入 #
4. 按 Esc,稍等片刻所有选中行都会加上 #
# 批量删除注释:
1. Ctrl+v 选中 # 所在列
2. 按 d 删除
vim 8 新特性
| 特性 | 说明 |
|---|---|
异步任务 job_start() |
后台运行命令不阻塞编辑,插件可做实时 Lint |
内置终端 :terminal |
vim 里直接开终端,Ctrl+w 切换回 vim |
包管理 :packadd |
原生插件管理,把插件放 ~/.vim/pack/ 即可 |
定时器 timer_start() |
定时执行 VimScript 函数 |
学习路径:先记住
ihjkl:wq这 7 个键就能基本使用 → 然后学dd yy p u .提高效率 → 再学搜索替换和 Visual Block → 最后学配置和插件。
3. ranger — 终端文件管理器
三栏式 Vim 风格文件管理,键盘操作一切
ranger 采用 Miller Columns 三栏布局:左栏显示上级目录、中栏显示当前目录文件列表、右栏实时预览选中文件内容。所有操作用 Vim 风格按键完成,双手不离键盘。已集成 fzf 实现模糊文件名搜索和文件内容搜索。
界面布局
┌──────────┬──────────────────┬──────────────────┐
│ 上级目录 │ 当前目录文件列表 │ 选中文件预览 │
│ │ │ │
│ 📁 src │ 📄 index.html │ <!DOCTYPE html> │
│ 📁 css │>📄 style.css │ body { │
│ 📁 js │ 📄 main.js │ margin: 0; │
│ │ 📁 images │ } │
└──────────┴──────────────────┴──────────────────┘
↑ 光标所在栏
典型场景
- 快速浏览文件:三栏同时看到上级、当前、预览,比
ls + cat高效得多。 - 批量操作文件:Space 多选 → yy 复制 / dd 剪切 → 导航到目标 → pp 粘贴。
- 批量重命名:
:bulkrename打开编辑器批量改文件名,保存即生效。 - 模糊搜索文件:按
f呼出 fzf,输入几个字母直接跳到目标文件。 - 搜索文件内容:按
G用 ripgrep + fzf 搜索所有文件内容,实时预览。 - 代码预览:右栏自动高亮显示代码,配合 highlight 插件效果更好。
导航操作
| 按键 | 功能 |
|---|---|
h |
返回上级目录 |
j / k |
光标下移 / 上移 |
l |
进入目录 / 打开文件 |
gg / G |
跳到列表顶部 / 底部 |
/ |
当前目录内搜索文件名 |
n / N |
下一个 / 上一个搜索结果 |
Ctrl+d / Ctrl+u |
向下 / 向上翻半页 |
m<字母> |
设置书签 |
'<字母> |
跳到书签 |
文件操作
| 按键 | 功能 |
|---|---|
yy |
复制(yank)选中文件 |
dd |
剪切选中文件 |
pp |
粘贴 |
dD |
删除文件 |
cw |
重命名 |
Space |
选中 / 取消选中 |
V |
可视模式批量选择 |
uv |
取消所有选中 |
zh |
显示 / 隐藏隐藏文件 |
o |
排序方式菜单 |
r |
选择打开方式 |
命令模式(按 : 进入)
| 命令 | 功能 |
|---|---|
:mkdir 名称 |
新建目录 |
:touch 名称 |
新建文件 |
:chmod 755 |
修改权限 |
:shell 命令 |
执行 shell 命令 |
:bulkrename |
批量重命名(超强) |
:filter 关键词 |
过滤当前目录文件 |
:fzf_select |
fzf 模糊搜索文件名 |
:fzf_grep |
fzf + ripgrep 搜索文件内容 |
已配置的快捷键
f→ fzf 搜索文件名(模糊匹配,递归搜索子目录)
G→ fzf + ripgrep 搜索文件内容(大写 G)
配置文件位置
~/.config/ranger/
├── rc.conf # 快捷键和设置
├── commands.py # 自定义命令(fzf_select / fzf_grep 在这里)
├── rifle.conf # 文件打开规则
└── scope.sh # 文件预览脚本
退出后 cd 到浏览目录:在
~/.bashrc中添加 ranger 函数包装,退出后自动跳转到最后浏览的目录。运行ranger --copy-config=all生成配置文件。
4. fzf — 模糊搜索器
通用的命令行模糊查找工具,万物皆可搜
fzf(Fuzzy Finder)是一个通用模糊搜索过滤器:它从标准输入读取候选列表,提供一个交互式界面让你快速筛选和选择。它可以和几乎所有命令行工具组合使用——文件、目录、命令历史、Git 分支、进程……都可以 fzf。
核心原理
任何命令的输出 ──管道──▶ fzf ──▶ 你选中的结果
# 例子:从 find 结果中模糊选择文件
find . -type f | fzf
# 例子:从命令历史中搜索
history | fzf
# 例子:从 Git 分支中切换
git branch | fzf
典型场景
- 快速打开文件:
vim $(fzf)或code $(fzf),不用记路径。 - 快速 cd 目录:
cd $(find . -type d | fzf),深层目录一键跳转。 - 搜索命令历史:按
Ctrl+r模糊搜索历史命令,比默认反向搜索强得多。 - 切换 Git 分支:
git checkout $(git branch | fzf),分支多时特别方便。 - 搜索进程:
kill $(ps aux | fzf | awk '{print $2}'),杀进程不用记 PID。 - 配合 ranger:ranger 里按
f搜文件名、按G搜文件内容。
Shell 集成快捷键(bash)
| 快捷键 | 功能 |
|---|---|
Ctrl+r |
模糊搜索命令历史 |
Ctrl+t |
在当前命令行中插入选中的文件路径 |
Alt+c |
模糊选择目录并 cd 进入 |
最常用的三个:
Ctrl+r搜历史命令、Ctrl+t插入文件路径、Alt+c跳目录。装完 fzf 后这三个快捷键自动启用。
fzf 界面操作
| 按键 | 功能 |
|---|---|
| 输入文字 | 实时模糊匹配过滤 |
↑ / ↓ |
上下移动选择 |
Ctrl+k / Ctrl+j |
上下移动(同方向键) |
Tab |
多选(配合 -m 参数) |
Enter |
确认选择 |
Esc / Ctrl+c |
取消退出 |
搜索语法
| 输入 | 含义 | 示例 |
|---|---|---|
abc |
模糊匹配,按顺序包含 a、b、c | app → application |
'abc |
精确匹配(单引号开头) | 'main → main.py(不含 mainline) |
^abc |
前缀匹配 | ^test → test_*.py |
| `abc | 输入 | 含义 |
| ------ | ------ | ------ |
abc |
模糊匹配,按顺序包含 a、b、c | app → application |
'abc |
精确匹配(单引号开头) | 'main → main.py(不含 mainline) |
^abc |
前缀匹配 | ^test → test_*.py |
| 后缀匹配 | .md$ → 所有 .md 文件 |
||
!abc |
排除匹配 | .md !index → .md 文件但不含 index |
| |
或匹配 | .md | .txt → md 或 txt 文件 |
(空格) |
与匹配 | src test → 同时含 src 和 test |
常用组合命令
# 用 vim 打开 fzf 选中的文件
vim $(fzf)
# 用 VS Code 打开
code $(fzf)
# cd 到 fzf 选中的目录
cd $(find . -type d | fzf)
# 搜索并 kill 进程
kill -9 $(ps aux | fzf | awk '{print $2}')
# 搜索文件并用 bat 查看(带语法高亮)
fzf --preview 'bat --color=always {}'
# Git 分支切换
git checkout $(git branch | fzf | tr -d ' ')
# 搜索文件内容(配合 ripgrep)
rg --line-number '' | fzf | cut -d: -f1
推荐环境变量(~/.bashrc)
# fzf 默认搜索命令(用 fd 替代 find,更快)
export FZF_DEFAULT_COMMAND='find . -type f -not -path "*/\.git/*"'
# fzf 默认选项
export FZF_DEFAULT_OPTS='--height 40% --layout=reverse --border'
# Ctrl+t 搜索文件时的预览
export FZF_CTRL_T_OPTS='--preview "bat --color=always --style=numbers {} 2>/dev/null || cat {}"'
# Alt+c 搜索目录时的预览
export FZF_ALT_C_OPTS='--preview "tree -C {} | head -50"'
5. ripgrep — 高速内容搜索
比 grep 快 10 倍的现代替代品
ripgrep(命令名 rg)是一个递归目录内容搜索工具,类似 grep -r 但速度快得多。它默认跳过 .gitignore 中排除的文件和隐藏文件,支持 Unicode、正则表达式、多种文件类型过滤。是搜索代码内容的最佳工具。
为什么比 grep 快
| 特性 | grep | ripgrep |
|---|---|---|
| 多线程并行搜索 | ❌ 单线程 | ✅ 多核并行 |
| 自动跳过 .gitignore | ❌ 需手动配置 | ✅ 默认跳过 |
| 跳过隐藏文件 | ❌ 默认搜索 | ✅ 默认跳过 |
| 跳过二进制文件 | ⚠️ 输出乱码 | ✅ 自动跳过 |
| 内存映射(mmap) | ❌ | ✅ 大文件自动用 mmap |
| 正则引擎 | PCRE(较慢) | Rust regex(高度优化) |
典型场景
- 搜索代码内容:
rg "function"快速找出所有包含 function 的代码行。 - 只搜特定类型:
rg "import" -t py只在 Python 文件里搜 import。 - 统计匹配数量:
rg -c "TODO"每个文件有多少个 TODO 一目了然。 - 替换内容预览:配合 sed 做搜索替换,rg 负责找到位置。
- 搜 Markdown 笔记:
rg "侦探" -t md在所有 .md 笔记里搜"侦探"。 - 配合 fzf:管道给 fzf 做交互式选择,ranger 的
G就是这个原理。
基础用法
# 基本搜索(递归搜索当前目录)
rg "关键词"
# 在指定目录搜索
rg "关键词" /path/to/dir
# 只搜特定文件类型
rg "import" -t py # 只搜 Python 文件
rg "import" -t js -t ts # 搜 JS 和 TS 文件
rg "import" -T py # 排除 Python 文件
# 搜索多个关键词(正则 OR)
rg "TODO|FIXME|HACK"
# 忽略大小写
rg -i "error"
# 全词匹配
rg -w "config" # 不匹配 configuration
# 固定字符串(不按正则解析)
rg -F "array[0]" # 搜索字面量 array[0]
# 只显示文件名(不显示内容)
rg -l "关键词"
# 显示匹配数量
rg -c "TODO"
# 显示匹配行号和内容(默认行为)
rg --line-number "关键词"
# 上下文显示
rg -C 3 "关键词" # 显示匹配行及前后各 3 行
rg -B 2 "关键词" # 前 2 行
rg -A 2 "关键词" # 后 2 行
高级用法
# 搜索隐藏文件(默认跳过)
rg --hidden "关键词"
# 不遵守 .gitignore(搜索所有文件)
rg --no-ignore "关键词"
# 只搜索文件名(不是内容)
rg --files | rg "test" # 找文件名含 test 的文件
# 替换预览(不实际修改文件)
rg "old_name" -r "new_name"
# JSON 输出(适合脚本处理)
rg --json "关键词"
# 统计每个文件的匹配数并排序
rg -c "TODO" | sort -t: -k2 -rn
# 搜索二进制文件中的文本
rg -a "关键词"
# 多线程控制
rg -j 4 "关键词" # 用 4 个线程
常用文件类型
| -t 参数 | 文件类型 |
|---|---|
-t py |
Python (.py) |
-t js |
JavaScript (.js) |
-t ts |
TypeScript (.ts) |
-t go |
Go (.go) |
-t rs |
Rust (.rs) |
-t java |
Java (.java) |
-t c |
C (.c .h) |
-t cpp |
C++ (.cpp .cc .hpp) |
-t sh |
Shell (.sh .bash) |
-t md |
Markdown (.md) |
-t html |
HTML (.html .htm) |
-t css |
CSS (.css) |
-t json |
JSON (.json) |
-t yaml |
YAML (.yaml .yml) |
查看所有支持的类型:rg --type-list
对比记忆:
grep "x" file→rg "x"(自动递归);grep -r "x" .→rg "x";grep -ri "x" .→rg -i "x";grep -rl "x" .→rg -l "x"。
6. 组合工作流 — 工具联动
五个工具不是孤立使用的,组合起来才是完整的终端工作流
场景一:tmux + vim + ranger 全终端开发
# 1. 开一个 tmux session
tmux new -s dev
# 2. 左边用 ranger 浏览文件,右边用 vim 写代码
Ctrl+b % # 左右分割
左侧: ranger # 浏览文件
Ctrl+b → # 切到右侧
右侧: vim main.py # 写代码
# 3. 再开一个底部面板跑命令
Ctrl+b " # 上下分割
Ctrl+b ↓ # 切到底部
python main.py # 运行代码
# 4. 断开(任务不丢)
Ctrl+b d
# 5. 回来
tmux a -t dev
场景二:ranger + fzf + ripgrep 快速定位文件
# 在 ranger 中:
# 按名搜文件 → 按 f,输入几个字母,Enter 跳转
f
# 按内容搜文件 → 按 G,输入关键词,右侧实时预览
G
# 找到后按 E 直接用 vim 编辑
E
知道文件名用 f,知道内容关键词用 G,这是 ranger 中最高效的文件定位方式。
场景三:fzf + ripgrep 命令行搜索
# 搜文件内容并用 fzf 交互选择,右侧预览
rg --line-number --no-heading "" | fzf --delimiter=: \
--preview 'bat --color=always {1} 2>/dev/null || cat {1}' \
--preview-window 'right:60%' | cut -d: -f1
# 选中后用 vim 打开
vim $(rg -l "关键词" | fzf)
# 搜索并替换(rg 找到 → sed 替换)
rg -l "old_name" | xargs sed -i 's/old_name/new_name/g'
场景四:vim + fzf + ripgrep 编辑器内搜索
" 在 vim 中(需安装 fzf.vim 插件):
:Files " fzf 搜文件名,选中打开
:Rg 关键词 " rg 搜内容,选中跳转
:Buffers " 切换已打开的 buffer
:Lines " 搜索所有 buffer 中的行
:History " 搜索文件打开历史
:GFiles " 只搜 git 跟踪的文件
:Commits " 搜索 git commit 历史
安装方式:git clone https://github.com/junegunn/fzf.vim ~/.vim/pack/vendor/start/fzf.vim
场景五:tmux + 全套工具远程开发
# SSH 到服务器,启动 tmux
ssh server
tmux new -s work
# 窗口 1:代码编辑
# 面板1: vim(写代码,:Rg 搜内容)
# 面板2: 运行测试
# 窗口 2:文件管理
# ranger(f 搜文件名,G 搜内容)
# 窗口 3:Git 操作
# git status / git log
# 断开 SSH,明天回来:
tmux a -t work
# 所有窗口、面板、vim 文件、ranger 状态全部恢复
7. 速查卡
tmux(前缀 Ctrl+b)
| 按键 | 功能 |
|---|---|
d |
脱离会话 |
c |
新建窗口 |
n / p |
下/上个窗口 |
% |
左右分割 |
" |
上下分割 |
方向键 |
切面板 |
z |
面板全屏 |
x |
关面板 |
| ` | 按键 |
| ------ | ------ |
d |
脱离会话 |
c |
新建窗口 |
n / p |
下/上个窗口 |
% |
左右分割 |
" |
上下分割 |
方向键 |
切面板 |
z |
面板全屏 |
x |
关面板 |
| 重命名会话 | |
[ |
滚动模式 |
vim(Normal 模式)
| 按键 | 功能 |
|---|---|
h j k l |
移动 |
i a o |
插入 |
dd yy p |
删/复/粘 |
u Ctrl+r |
撤销/重做 |
/ n N |
搜索 |
. |
重复操作 |
v V Ctrl+v |
三种选择 |
:wq |
保存退出 |
:%s/a/b/g |
全文替换 |
gg G |
首/尾行 |
* # |
搜词下/上个 |
Esc |
回 Normal |
ranger
| 按键 | 功能 |
|---|---|
h j k l |
导航 |
yy dd pp |
复制/剪/粘 |
cw |
重命名 |
dD |
删除 |
Space V |
选中 |
zh |
隐藏文件 |
f |
fzf 搜文件名 |
G |
fzf 搜内容 |
E |
vim 编辑 |
:bulkrename |
批量重命名 |
q |
退出 |
? |
帮助 |
fzf
| 按键 | 功能 |
|---|---|
Ctrl+r |
搜历史命令 |
Ctrl+t |
插入文件路径 |
Alt+c |
cd 到目录 |
Tab |
多选 |
Enter |
确认 |
Esc |
取消 |
'abc |
精确匹配 |
^abc |
前缀匹配 |
| `abc | 按键 |
| ------ | ------ |
Ctrl+r |
搜历史命令 |
Ctrl+t |
插入文件路径 |
Alt+c |
cd 到目录 |
Tab |
多选 |
Enter |
确认 |
Esc |
取消 |
'abc |
精确匹配 |
^abc |
前缀匹配 |
| 后缀匹配 | |
!abc |
排除 |
ripgrep (rg)
| 按键 | 功能 |
|---|---|
rg "词" |
基本搜索 |
rg -i "词" |
忽略大小写 |
rg -w "词" |
全词匹配 |
rg -t py "词" |
只搜 Python |
rg -l "词" |
只显文件名 |
rg -c "词" |
匹配数量 |
rg -C 3 "词" |
上下文 3 行 |
rg --hidden |
含隐藏文件 |
rg -F "str" |
固定字符串 |
rg -r "新" |
替换预览 |
每日最高频操作 Top 10
Ctrl+r— 搜历史命令(fzf)Alt+c— 模糊跳目录(fzf)vim $(fzf)— 模糊打开文件rg "关键词"— 搜代码内容- ranger 里按
f— 搜文件名 - ranger 里按
G— 搜文件内容 - vim 里
:wq— 保存退出 - vim 里
:%s/old/new/g— 批量替换 - tmux 里
Ctrl+b d— 脱离会话 - tmux 里
tmux a— 回到会话
WSL2 Ubuntu 终端工具链手册 · tmux · vim 8 · ranger · fzf · ripgrep
生成于 2026-08-06 · 在你的终端里,键盘就是一切

浙公网安备 33010602011771号