Macros 配置绑定以在Tmux中执行预定义搜索

Macros 配置绑定以在Tmux中执行预定义搜索,macros,tmux,Macros,Tmux,我正试图找到一种方法,使用tmux跳转到iTerm中的上一个提示符。我可以设置一个绑定来搜索提示符中的唯一短语吗?执行此操作的标准方法是编写bash脚本,将命令发回tmux 但我想推荐一个允许更灵活的脚本编写方式的mod:(我是作者) 使用此mod,您的问题可以通过以下方式解决: bind p copy-mode ";" tcl { set s [copy-mode-screenline -ex [copy-mode-get-cx]] cursor-up send-keys "?"

我正试图找到一种方法,使用tmux跳转到iTerm中的上一个提示符。我可以设置一个绑定来搜索提示符中的唯一短语吗?

执行此操作的标准方法是编写bash脚本,将命令发回tmux

但我想推荐一个允许更灵活的脚本编写方式的mod:(我是作者)

使用此mod,您的问题可以通过以下方式解决:

bind p copy-mode ";" tcl {
  set s [copy-mode-screenline -ex [copy-mode-get-cx]]
  cursor-up
  send-keys "?" "\x15$s"
}
这将从开始到光标位置读取当前行,并搜索以前出现的行


“p”键可以根据您的喜好进行更改。

因此,请进一步介绍Yuriy的答案。在终端内部,您可以运行以下命令:

tmux copy-mode ; tmux send -X search-backward 'Example'
这将使您当前的tmux窗格进入复制模式,然后启动“示例”搜索。现在,我们将创建一个shell脚本(比如
/tmp/search.sh
),然后将tmux绑定到该脚本,而不是每次要搜索时都键入它

/tmp/search.sh的内容

#!/usr/bin/env bash
tmux copy-mode ; tmux send -X search-backward 'These'
确保使用
chmod+x/tmp/search.sh使其可执行。此时,您可以通过从tmux会话调用脚本来测试它是否工作。要将其添加为绑定,可以将类似于以下内容的内容添加到
~/.tmux.conf
文件中:

bind p run-shell "bash /tmp/search.sh"

确保您在tmux会话中刷新了源代码配置,新绑定将启动搜索。

谢谢您的帮助。不幸的是,我已经有了一个24位颜色的定制Tmux设置,我不想破坏它。我最终使用键盘大师自动输入所需的击键。这是一个骇客,但它的工作,我现在可以很容易地跳转到以前的提示。也许如果我能自己解决如何修补Tmux,我会将你的mod和24位mod一起使用。因为能够编写Tmux脚本听起来非常有用。