当我在复制模式下向上滚动时,是否有任何现有的方法可以获取回滚缓冲区中的当前位置?
例如:我进入了复制模式,向上滚动了相当长一段距离。现在复制模式指示显示[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
。