欢迎回来
登录你的知识库账户
忘记密码?
还没有账户?立即注册
创建账户
注册你的专属知识库
已有账户?去登录
找回密码
输入注册邮箱获取验证码
返回登录
请输入图片中的验证码以继续注册
加载中...
取消
新建收藏
手动添加你喜欢的内容
取消
编辑头像与昵称
上传新头像或修改你的显示昵称
支持 JPG/PNG,最大 2MB
取消

问题反馈

notebasewww.notebase.cn
控制台
内容库
动态
管理
账户
U
用户
--
在线
v0.8.7 · 知识库
笔记
KnowledgeBase
网络无边,知识有迹。
0笔记
0工具
30推荐

分类导航

按主题直达

编辑精选

站内用户贡献 · 真实笔记

最新收录

每日更新
继续浏览全部内容 →
>
笔记
0
加载中...
工具
0
此页用于记录用户反馈问题后的每一次改进
笔记用法

“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。

md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。

要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。

工具用法

在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。

要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。

工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。

隐藏笔记

写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。

适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。

数据安全

你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。

技术

全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。

理念

这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。

原则

不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。

更多

产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。

举报

如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。

趋势
// 点击导航加载发现
归档
// 归档为空
最近浏览
// 暂无浏览记录
发布
// 加载中...
用户发布
// 加载中...
用户管理
// 加载中...
访问统计
// 加载中...
内容审核
// 加载中...
个人信息
// 加载中...
返回首页

tmuxp

tmuxp — 一个用YAML/JSON配置文件批量管理tmux会话的CLI工具,告别手动开窗口。

tmux 是终端复用器里的老大哥,但它的学习曲线和手动管理会话的繁琐程度,一直是很多人的痛点。你可能会遇到这样的场景:每次启动开发环境,都要手动敲 tmux new -s myproject、split-window -h、send-keys 'cd ~/project && nvim' Enter…… 一套流程下来,手指都快抽筋了。而 tmuxp 就是来解决这个问题的——它把 tmux 会话的窗口、面板布局、启动命令等全部写进一个配置文件里,然后一条命令就能还原整个工作环境。

简单说,tmuxp 就像 tmux 的“一键还原脚本”。它不替换 tmux,而是让 tmux 更听话。你可以在家目录下放一堆 .yaml 文件,每个文件对应一个项目的工作区。想切项目?tmuxp load project.yaml,所有窗口和面板自动打开,连光标位置都给你摆好。想保存当前布局?tmuxp freeze,直接把当前会话的窗口结构导出为配置文件,下次直接用。

下载与安装

tmuxp 官方推荐用 pip 安装,因为它就是纯 Python 写的。不过别担心,你不需要懂 Python 就能用。

官网链接:tmuxp 官网
GitHub 仓库:tmuxp 源码

安装方式很简单,根据你的包管理器选一个:

# 用 pip(最推荐,跨平台)
pip install --user tmuxp

# 如果你用 macOS 且装了 Homebrew
brew install tmuxp

# 如果你用 Arch Linux
yay -S tmuxp  # 或者从 AUR 手动安装

# 如果你用 NixOS
nix-env -iA nixos.tmuxp

安装完验证一下:tmuxp --version。如果输出版本号,就搞定了。

基础使用教程

1. 创建你的第一个配置文件

tmuxp 的配置默认放在 ~/.tmuxp/ 目录下。你可以手动创建这个目录,然后写一个 YAML 文件:

mkdir -p ~/.tmuxp
vim ~/.tmuxp/dev.yaml

内容如下:

session_name: dev
windows:
  - window_name: editor
    panes:
      - nvim
  - window_name: server
    panes:
      - cd ~/myproject && npm run dev
  - window_name: shell
    panes:
      - 

这个配置定义了一个叫 dev 的 tmux 会话,包含三个窗口:第一个窗口打开 nvim,第二个窗口启动开发服务器,第三个窗口留一个干净的 shell。注意第三个窗口的 panes 里写了一个空列表项 -,表示只开一个空面板。

2. 加载配置

保存文件后,在终端运行:

tmuxp load dev

或者指定完整路径:

tmuxp load ~/.tmuxp/dev.yaml

如果 tmux 还没启动,tmuxp 会自动创建一个新的 tmux 会话;如果 tmux 已经在运行,它会尝试在当前会话里创建新窗口(取决于你的设置)。默认行为是在一个新会话中打开。

3. 保存当前会话

假如你手动调整了一个 tmux 会话的布局,想把当前状态保存成配置文件,可以用 freeze 命令:

tmuxp freeze my-session-name

这会生成一个 YAML 文件,默认放在当前目录下,文件名是 my-session-name.yaml。你可以把它拷贝到 ~/.tmuxp/ 里,以后直接加载。

4. 其他常用命令

# 列出所有可用的配置文件
tmuxp ls

# 编辑配置文件(用默认编辑器打开)
tmuxp edit dev

# 导入一个已有的 tmux 会话(类似 freeze,但更精细)
tmuxp import dev

进阶技巧

1. 利用环境变量和动态路径

如果你的项目路径经常变,可以在配置里用 $HOME 或 ~。tmuxp 支持 shell 变量展开:

session_name: project
start_directory: ~/projects/{{ project_name }}
windows:
  - window_name: code
    panes:
      - nvim

然后用 tmuxp load project --project_name=myapp 来动态指定路径。

2. 布局控制与面板拆分

tmuxp 支持显式指定面板布局,比如横向拆分、纵向拆分、甚至百分比:

session_name: multi-panel
windows:
  - window_name: dev
    layout: main-vertical  # 主面板在左,右侧垂直拆分
    panes:
      - nvim
      - top
      - tail -f /var/log/syslog

如果你想要更精细的控制,可以用 layout 字段指定 tmux 的 layout 字符串(比如 2e2e,135x55,0,0{67x55,0,0,0,67x55,68,0,1})。这串东西可以在 tmux 里用 tmux list-windows -a 看到。

3. 启动前执行脚本

你可以让 tmuxp 在创建会话前先跑一段脚本,比如检查 git 仓库状态、拉取最新代码:

session_name: auto-pull
before_script:
  - cd ~/myproject && git pull
windows:
  - window_name: main
    panes:
      - nvim

before_script 里的命令会在所有窗口创建之前执行。如果脚本返回非零退出码,tmuxp 会报错并停止加载。

4. 与 zsh/fish 的 aliases 配合

如果你常用 tmuxp,可以给 shell 加个 alias:

alias tload='tmuxp load'
alias tfreeze='tmuxp freeze'
alias tls='tmuxp ls'

或者写个函数,自动补全配置文件名称:

_tmuxp_load() {
  local files=($(ls ~/.tmuxp/*.yaml 2>/dev/null | xargs -n1 basename | sed 's/\.yaml//'))
  compadd -a files
}
compdef _tmuxp_load tmuxp

5. 跨机器同步配置

把你的 ~/.tmuxp/ 目录加入 dotfiles 仓库(比如用 git)。这样换了电脑后,只要同步 dotfiles,再装个 tmuxp,所有工作区配置就自动就位。配合 tmuxp load 的自动补全,切换项目就像切换桌面一样快。

6. 调试配置错误

如果配置文件写错了,tmuxp 会报错。但有时候错误信息不够直观。你可以用 tmuxp load --dry-run dev 来模拟加载,看看它会执行哪些命令,而不实际创建会话。或者用 yq 工具验证 YAML 语法:

yq eval ~/.tmuxp/dev.yaml

如果 YAML 格式有问题,会直接报错。

写在最后

tmuxp 不是必需品,但如果你每天要和 tmux 打交道,它绝对能帮你节省大量重复操作的时间。尤其适合那些需要同时启动多个终端窗口的项目——比如前端开发(webpack + nvim + 日志窗口)、后端调试(数据库客户端 + API 服务 + 测试脚本)、甚至运维管理(多台服务器同时监控)。把配置写好,每天开工就一句 tmuxp load project,世界清净了。

另外,tmuxp 背后还有一个 Python 库叫 libtmux,如果你喜欢写脚本自动操作 tmux,也可以直接 import 这个库来编程控制。不过对大部分用户来说,YAML 配置已经够用了。

最后提醒一句:tmuxp 的配置文件和 tmux 本身一样,需要一点学习成本。但一旦上手,你就会觉得——以前手动敲 tmux 命令的日子,简直是在用手摇发电机。

编写使用方法
Markdown 格式 · Ctrl+Enter 确定
新建笔记
预览
数据表格
点击单元格编辑 · Tab 移动
A1fx
Sheet1
BIH1H2≡🔗</>
隐私提醒

取消
编辑工具
取消