![如何在 tmux 复制模式下获取当前回滚位置](https://linux22.com/image/1499138/%E5%A6%82%E4%BD%95%E5%9C%A8%20tmux%20%E5%A4%8D%E5%88%B6%E6%A8%A1%E5%BC%8F%E4%B8%8B%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E5%9B%9E%E6%BB%9A%E4%BD%8D%E7%BD%AE.png)
当我在复制模式下向上滚动时,是否有任何现有的方法可以获取回滚缓冲区中的当前位置?
例如:我进入了复制模式,向上滚动了相当长一段距离。现在复制模式指示显示[36828/42969]
。我想运行类似
:display-message #{scrollback-position}#
那可能吗?
答案1
我认为tmux
源代码需要修改才能将两个数字中的一个作为格式变量名访问。较大的数字(本例中为 42969)似乎可以作为 访问,并且它在viahistory_size
中可见为元素的元素,如在中第一次调用 时所见。format.c
tmux.h
hsize
grid
struct screen
format_add
format_defaults_pane
较小的数字(本例中为 36828)似乎是oy
的元素,它在的元素中作为struct window_copy_mode_data
进行访问。简而言之,较小的数字是 结构体的一个元素,在 中不可见。元素用于构造一个字符串,如问题中提到的字符串。modedata
struct window_pane
void *
format.c
oy
window_copy_write_line
答案2
从 tmux 2.2 开始,他们添加了一个scroll_position
变量。Tmux 手册将其描述为
scroll_position - Scroll position in copy mode
。