我正在尝试使用tmux找到一种方法来跳转到iTerm中的上一个提示。我可以设置绑定以在提示中搜索唯一的短语吗?
所以扩展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会话中刷新配置源,新绑定应启动搜索。
这样做的规范方法是编写一个bash脚本来将命令发回给你的tmux。
但我想建议一个允许更灵活的脚本编写的mod:http://ershov.github.io/tmux/(我是作者)
使用此mod,您的问题可以通过这种方式解决:
bind p copy-mode ";" tcl {
set s [copy-mode-screenline -ex [copy-mode-get-cx]]
cursor-up
send-keys "?" "\x15$s"
}
这将从开头到光标位置读取当前行并搜索它的上一次出现。
键'p'可以根据您的喜好进行更改。