0.2.4 |
|
---|---|
0.2.3 |
|
0.1.1 |
|
0.1.0 |
|
#5 in #tmux-plugin
36KB
822 行
tmux-thumbs
tmux-fingers的闪电快版本,使用Rust编写,用于像vimium/vimperator一样复制粘贴提示。
用法
按下( 前缀 + 空格 ),在你的当前tmux可见面板中高亮显示所有匹配特定模式的文本。然后按高亮的字母提示来复制tmux缓冲区中的文本。
匹配模式
- 文件路径
- diff中的文件
- Git SHAs
- 十六进制颜色
- 数字( 4+位数 )
- 十六进制数字
- Markdown网址
- IP4地址
- kubernetes资源
- UUIDs
这些是默认高亮的匹配模式列表。如果你想要高亮不在列表中的模式,你可以使用--regexp
参数添加一个或多个。
演示
Tmux集成
克隆仓库
git clone https://github.com/fcsonline/tmux-thumbs ~/.tmux/plugins/tmux-thumbs
使用cargo编译
cd ~/.tmux/plugins/tmux-thumbs
cargo build --release
在你的.tmux.conf
中引入它
run-shell ~/.tmux/plugins/tmux-thumbs/tmux-thumbs.tmux
运行以下命令重新加载TMUX配置
tmux source-file ~/.tmux.conf
配置
如果你想要自定义tmux-thumbs提示的显示方式,以下所有可用的参数可以帮助你设置完美的配置文件。
注意:要使更改生效,你需要再次引入你的.tmux.conf
文件。
- @thumbs-alphabet
- @thumbs-reverse
- @thumbs-unique
- @thumbs-position
- @thumbs-regexp-N
- @thumbs-command
- @thumbs-upcase-command
- @thumbs-bg-color
- @thumbs-fg-color
- @thumbs-hint-bg-color
- @thumbs-hint-fg-color
- @thumbs-select-fg-color
@thumbs-alphabet
默认:qwerty
选择用于构建提示的字符集。查看所有可用的字母表
例如
set -g @thumbs-alphabet dvorak-homerow
@thumbs-reverse
默认:禁用
选择你想要分配提示的方向。这对于将较短的提示放在光标附近很有用。
例如
set -g @thumbs-reverse
@thumbs-unique
默认:禁用
选择是否为相同的匹配字符串分配相同的提示。
例如
set -g @thumbs-unique
@thumbs-position
默认:左
选择你想要在匹配字符串中显示提示的位置。选项(左,右)。
例如
set -g @thumbs-position right
@thumbs-regexp-N
添加额外的匹配模式。此参数可以有多个实例。
例如
set @thumbs-regexp-1 '[a-z]+@[a-z]+.com' # Match emails
set @thumbs-regexp-2 '[a-f0-9]{2}:[a-f0-9]{2}:[a-f0-9]{2}:[a-f0-9]{2}:[a-f0-9]{2}:[a-f0-9]{2}:' # Match MAC addresses
@thumbs-command
默认: 'tmux'设置-缓冲区{}'
选择你按下提示时执行的命令。
例如
set -g @thumbs-command 'pbcopy'
@thumbs-upcase-command
默认: 'tmux'粘贴-缓冲区'
选择你按下大写提示时执行的命令
例如
set -g @thumbs-upcase-command 'pbcopy'
@thumbs-bg-color
默认:黑色
设置匹配项的背景颜色
例如
set -g @thumbs-bg-color blue
@thumbs-fg-color
默认:绿色
设置匹配项的前景色
例如
set -g @thumbs-fg-color green
@thumbs-hint-bg-color
默认:黑色
设置提示信息的背景颜色
例如
set -g @thumbs-hint-bg-color blue
@thumbs-hint-fg-color
默认:黄色
设置提示信息的前景色
例如
set -g @thumbs-hint-fg-color green
@thumbs-select-fg-color
默认:蓝色
设置选择项的前景色
例如
set -g @thumbs-select-fg-color red
颜色
这是可用颜色的列表
- 黑色
- 红色
- 绿色
- 黄色
- 蓝色
- 品红色
- 青色
- 白色
- 默认
字母表
这是可用字母表的列表
数字
: 1234567890abcd
: abcdqwerty
: asdfqwerzxcvjklmiuopghtybnqwerty-homerow
: asdfjklghqwerty-left-hand
: asdfqwerzcxvqwerty-right-hand
: jkluiopmyhnazerty
: qsdfazerwxcvjklmuiopghtybnazerty-homerow
: qsdfjkmghazerty-left-hand
: qsdfazerwxcvazerty-right-hand
: jklmuiophynqwertz
: asdfqweryxcvjkluiopmghtzbnqwertz-homerow
: asdfghjklqwertz-left-hand
: asdfqweryxcvqwertz-right-hand
: jkluiopmhzndvorak
: aoeuqjkxpyhtnsgcrlmwvzfidbdvorak-homerow
: aoeuhtnsiddvorak-left-hand
: aoeupqjkyixdvorak-right-hand
: htnsgcrlmwvzcolemak
: arstqwfpzxcvneioluymdhgjbkcolemak-homerow
: arstneiodhcolemak-left-hand
: arstqwfpzxcvcolemak-right-hand
: neioluymjhk
额外功能
- 箭头导航:您可以使用箭头在所有匹配项之间移动。
- 自动粘贴:如果您最后输入的提示字符是大写字母,您将选择并粘贴所需的提示。
背景
正如我所说,这个项目是基于tmux-fingers的。Morantron做了一项非凡的工作,使用Bash构建了所有必要的组件以实现文本选择器的行为。他只值得我对我在使用tmux-fingers期间所花费的所有时间的感激。
在一次Fosdem会议上,我们有了将其重写为另一种语言的念头。他很久以前就有过这些想法,但很难从头开始。因此,我们决定开始尝试Node.js和react-blessed,但我们发现在程序启动时存在不可接受的延迟。我们没有对这种延迟进行太多调查。
在那几天,另一种替代方案出现了,称为tmux-picker,用Python实现并重用了tmux-fingers的许多部分。它很好,因为它速度快,并增加了原始终端颜色支持。
我很好奇是否有可能用Rust编写,很快我就意识到这是可行的。对应用程序所有关键部分进行测试的能力让你对其有极大的信心。另一方面,Rust有一个了不起的社区,让你能在短时间内完成这类项目。
贡献
这个项目最初是一个学习Rust的副项目,所以我确信它充满了错误和需要改进的领域。如果您认为您可以对代码进行修改以使其更好,我将非常感激您的拉取请求。 ;)
许可证
依赖关系
~4–14MB
~158K SLoC