tmux 是否支持相对行号?

Does tmux support relative line-numbers?

背景。

我是 vim 的常客,我喜欢这种无需触碰鼠标即可浏览缓冲区的方式。我特别喜欢相对行号,它让我可以非常准确地跳转到特定行,它只会让导航速度更快。我也经常使用 tmux,因为我的终端中经常有很多事情要做。

最让我烦恼的是,当我使用 tmux 复制模式时,如果您使用箭头键 ctrl+p,则需要很长时间才能导航到您想要复制的行或 k.

在缓冲区中搜索唯一关键字也不理想,但如果您已经知道要搜索什么,可能会更快。很多时候你进行搜索只是为了发现你搜索的关键字毕竟不是那么独特而且你最终没有找到你想要的行。

我的问题是:

tmux 是否支持相对行号?

.. 或行号?

我在网上找不到任何关于此的信息。似乎没有人在任何地方提及此事。有没有更好的方法?

在 tmux 复制模式下使用键盘进行超快速导航的任何其他技巧也将不胜感激。

tmux 在复制模式下有一个行号系统。然而第一行是非常重要的。

在复制模式下,您可以按 :go to line,但没有显示行号的选项。您可以在复制模式下使用一些 vim 动作(键模式设置为 vi),例如j k 20j 20k f F t T gg G 20G H L M ^ $ / ? ctrl-u ctrl-d w b ....

我觉得复制一段文字就够了..如果你觉得还是不行"ultra-speedy navigation",做个场景,让我们看看怎样才能复制得更快

查看 tmux 的手册页了解详细信息。

我找到了这个提示。它将以更少的击键次数将您带到您的线路。

# super fast way to reach copy-mode and search upwards
bind-key / copy-mode \; send-key ?

这是一个彻头彻尾的技巧,但它确实有效:

tmux split-window -h -l 3 -b "printf '\e[38;5;0m\e[48;5;226m' \
  && seq 200 1 \
  && echo -n 0 \
  && read" \
&& tmux select-pane -l

(为可读性添加了换行符) 分解一下:

  • tmux split-window -h -l 3 "command..." 水平拆分窗格 -h(即在当前窗格旁边放置一个新窗格,而不是在上方或下方),-l 宽度为 3(您在当前窗格的 -b 左侧不太可能需要超过 3 位行号...0-999) 并在其中运行命令:
    • printf ... 只是将背景颜色设置为黄色,将前景色设置为黑色...如果您不喜欢,可以省略这一点 :)
    • seq 200 1 打印从 200 到 1 的行号 - 如果你有一个高屏幕则扩展!
    • echo -n 0 在最后一行打印 0,因为 seq 会打印尾随的换行符,而我们不希望这样
    • read 等待您按回车键 - 这就是我们在 echo 完成后阻止它关闭的方式
  • tmux select-pane -l 将您跳回到您正在处理的窗格中

Select 窗格并按 enter 键关闭它。

我想你可以做一些事情,为新窗格添加一个名称,并创建一个键绑定,以便从你实际尝试计算行号的窗格中打开和关闭它,但现在我是仅使用绑定:

bind N split-window -h -l 3 -b "printf '\e[38;5;0m\e[48;5;226m' && seq 200 1 && echo -n 0 && read" \; select-pane -l