#tmux #tmux-plugin #background-color #vimperator #vimium #rust

已删除 tmux-thumbs

tmux-fingers的闪电快版本,像vimium/vimperator一样复制粘贴tmux

0.2.4 2019年5月2日
0.2.3 2019年3月27日
0.1.1 2019年3月4日
0.1.0 2019年2月28日

#5 in #tmux-plugin

MIT许可证

36KB
822

tmux-thumbs

tmux-fingers的闪电快版本,使用Rust编写,用于像vimium/vimperator一样复制粘贴提示。

用法

按下( 前缀 + 空格 ),在你的当前tmux可见面板中高亮显示所有匹配特定模式的文本。然后按高亮的字母提示来复制tmux缓冲区中的文本。

匹配模式

  • 文件路径
  • diff中的文件
  • Git SHAs
  • 十六进制颜色
  • 数字( 4+位数 )
  • 十六进制数字
  • Markdown网址
  • IP4地址
  • kubernetes资源
  • UUIDs

这些是默认高亮的匹配模式列表。如果你想要高亮不在列表中的模式,你可以使用--regexp参数添加一个或多个。

演示

demo

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

默认: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

颜色

这是可用颜色的列表

  • 黑色
  • 红色
  • 绿色
  • 黄色
  • 蓝色
  • 品红色
  • 青色
  • 白色
  • 默认

字母表

这是可用字母表的列表

  • 数字: 1234567890
  • abcd: abcd
  • qwerty: asdfqwerzxcvjklmiuopghtybn
  • qwerty-homerow: asdfjklgh
  • qwerty-left-hand: asdfqwerzcxv
  • qwerty-right-hand: jkluiopmyhn
  • azerty: qsdfazerwxcvjklmuiopghtybn
  • azerty-homerow: qsdfjkmgh
  • azerty-left-hand: qsdfazerwxcv
  • azerty-right-hand: jklmuiophyn
  • qwertz: asdfqweryxcvjkluiopmghtzbn
  • qwertz-homerow: asdfghjkl
  • qwertz-left-hand: asdfqweryxcv
  • qwertz-right-hand: jkluiopmhzn
  • dvorak: aoeuqjkxpyhtnsgcrlmwvzfidb
  • dvorak-homerow: aoeuhtnsid
  • dvorak-left-hand: aoeupqjkyix
  • dvorak-right-hand: htnsgcrlmwvz
  • colemak: arstqwfpzxcvneioluymdhgjbk
  • colemak-homerow: arstneiodh
  • colemak-left-hand: arstqwfpzxcv
  • colemak-right-hand: neioluymjhk

额外功能

  • 箭头导航:您可以使用箭头在所有匹配项之间移动。
  • 自动粘贴:如果您最后输入的提示字符是大写字母,您将选择并粘贴所需的提示。

背景

正如我所说,这个项目是基于tmux-fingers的。Morantron做了一项非凡的工作,使用Bash构建了所有必要的组件以实现文本选择器的行为。他只值得我对我在使用tmux-fingers期间所花费的所有时间的感激。

在一次Fosdem会议上,我们有了将其重写为另一种语言的念头。他很久以前就有过这些想法,但很难从头开始。因此,我们决定开始尝试Node.js和react-blessed,但我们发现在程序启动时存在不可接受的延迟。我们没有对这种延迟进行太多调查。

在那几天,另一种替代方案出现了,称为tmux-picker,用Python实现并重用了tmux-fingers的许多部分。它很好,因为它速度快,并增加了原始终端颜色支持。

我很好奇是否有可能用Rust编写,很快我就意识到这是可行的。对应用程序所有关键部分进行测试的能力让你对其有极大的信心。另一方面,Rust有一个了不起的社区,让你能在短时间内完成这类项目。

贡献

这个项目最初是一个学习Rust的副项目,所以我确信它充满了错误和需要改进的领域。如果您认为您可以对代码进行修改以使其更好,我将非常感激您的拉取请求。 ;)

许可证

MIT

依赖关系

~4–14MB
~158K SLoC