11 个不稳定版本 (3 个破坏性更新)
0.4.2 | 2024 年 3 月 1 日 |
---|---|
0.3.2 | 2024 年 1 月 11 日 |
0.3.0 | 2023 年 12 月 20 日 |
0.2.3 | 2023 年 8 月 21 日 |
0.1.1 | 2022 年 5 月 24 日 |
#133 in 文件系统
每月 43 次下载
89KB
2K SLoC
tmux-sessionizer (tms)
管理项目作为 tmux 会话的最快方式
什么是 tmux-sessionizer?
Tmux Sessionizer 是一个基于 ThePrimeagen 的 tmux-sessionizer 的 tmux 会话管理器,但它是基于我特定的 tmux 工作流程进行意见化和个性化的。它非常棒。Git 工作树将自动以新窗口打开,可以排除特定目录,可以设置默认会话,结束会话会跳转到默认会话,并且目标是处理更多边缘情况。
Tmux 内置了键绑定,允许你在会话之间切换。默认情况下,这些是 leader-(
和 leader-)
默认情况下,使用 leader-p
和 leader-n
切换窗口
用法
tms
命令
运行 tms
将查找仓库并在它们上进行模糊查找。将 tms 命令绑定到 tmux 键绑定非常方便,这样你就不必离开你的文本编辑器来打开新的项目。我使用了这个 tmux 绑定 bind C-o display-popup -E "tms"
。请参阅下面的图片,以查看 tms switch
键绑定是什么样子
tms switch
命令
此外,还有 tms switch
命令,它会显示带有模糊搜索器和预览窗口的其他活动会话。当与 tmux 的 display-popup
命令结合使用时,可以打开一个在当前会话之上的弹出窗口,这非常有用。这个带有命令的弹出窗口可以设置快捷键。配置可能看起来像这样 bind C-j display-popup -E "tms switch"
。然后当使用 leader+C-j 时,弹出窗口就会显示(而且速度很快)
tms windows
命令
与 tms switch
类似,您可以使用模糊搜索器和预览窗口显示当前会话中的其他活动窗口。与 display-popup
结合使用的配置可能如下所示 bind C-w display-popup -E "tms windows"
。
tms rename
命令
使用此命令,您可以自动重命名活动会话以及目录名称,并且活动会话中所有面板内的活动目录都将更改为重命名后的目录
tms rename<new_session_name>
bind C-w command-prompt-p"重命名活动会话为" "run-shell 'tms rename %1'"
.
tms refresh
命令
使用此命令,您可以自动为活动会话或提供的 session_name
生成缺失的工作树窗口。
tms refresh<session_name>
bind C-r"run-shell 'tms refresh'"
.
CLI 概述
使用 tms --help
Scan for all git folders in specified directorires, select one and open it as a new tmux session
Usage: tms [COMMAND]
Commands:
config Configure the defaults for search paths and excluded directories
start Initialize tmux with the default sessions
switch Display other sessions with a fuzzy finder and a preview window
windows Display the current session's windows with a fuzzy finder and a preview window
kill Kill the current tmux session and jump to another
sessions Show running tmux sessions with asterisk on the current session
rename Rename the active session and the working directory
refresh Creates new worktree windows for the selected session
clone-repo Clone repository into the first search path and create a new session for it
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version
配置默认值
Configure the defaults for search paths and excluded directories
Usage: tms config [OPTIONS]
Options:
-p, --paths <search paths>...
The paths to search through. Shell like expansions such as '~' are supported
-s, --session <default session>
The default session to switch to (if available) when killing another session
--excluded <excluded dirs>...
As many directory names as desired to not be searched over
--remove <remove dir>...
As many directory names to be removed from exclusion list
--full-path <true | false>
Use the full path when displaying directories [possible values: true, false]
--search-submodules <true | false>
Also show initialized submodules [possible values: true, false]
--recursive-submodules <true | false>
Search submodules for submodules [possible values: true, false]
--switch-filter-unknown <true | false>
Only include sessions from search paths in the switcher [possible values: true, false]
-d, --max-depths <max depth>...
The maximum depth to traverse when searching for repositories in search paths, length should match the number of search paths if specified (defaults to 10)
--picker-highlight-color <#rrggbb>
Background color of the highlighted item in the picker
--picker-highlight-text-color <#rrggbb>
Text color of the hightlighted item in the picker
--picker-border-color <#rrggbb>
Color of the borders between widgets in the picker
--picker-info-color <#rrggbb>
Color of the item count in the picker
--picker-prompt-color <#rrggbb>
Color of the prompt in the picker
--session-sort-order <Alphabetical | LastAttach>
Set the sort order of the sessions in the switch command [possible values: Alphabetical, LastAttached]
-h, --help
Print help
配置文件位置
默认情况下,tms 在平台特定的配置目录中查找配置
Linux: /home/alice/.config/tms/config.toml
macOS: /Users/Alice/Library/Application Support/tms/config.toml
Windows: C:\Users\Alice\AppData\Roaming\tms\config.toml
如果找不到配置目录,它还将检查 ~/.config/tms/config.toml
(仅适用于 Windows 和 macOS)。或者,您可以通过在 shell 配置文件中设置环境变量 TMS_CONFIG_FILE
来指定自定义配置位置,以指定所需的配置路径。
自定义键盘快捷键
可以通过在配置文件中添加一个 [shortcuts]
部分,并将绑定作为 shortcut = action
的对来自定义键盘快捷键,例如
[shortcuts]
"ctrl-k" = "delete_to_line_end"
可用操作包括
- ""(用于删除默认绑定)
- "cancel"
- "confirm"
- "backspace"
- "delete"
- "move_up"
- "move_down"
- "cursor_left"
- "cursor_right"
- "delete_word"
- "delete_to_line_start"
- "delete_to_line_end"
- "move_to_line_start"
- "move_to_line_end"
安装
预构建的二进制文件
请查看 发布页面 以获取最新的预构建二进制文件
Cargo
使用 cargo install tmux-sessionizer
或
从源代码
克隆存储库,并使用 cargo install --path . --force
使用说明
可以使用 'tms sessions' 命令获取带有当前会话星号的样式化活动会话输出。配置可能看起来像这样
set -g status-right " #(tms sessions)"
例如, 如果使用此配置,可以帮助重新绑定默认的 tmux 键以切换会话,这样在每次会话切换时状态栏都会刷新。这可以通过以下设置进行配置。
bind -r '(' switch-client -p\; refresh-client -S
bind -r ')' switch-client -n\; refresh-client -S
依赖项
~19–34MB
~580K SLoC