tmux是否支持相对行号?

时间:2015-09-25 15:28:03

标签: vim relative tmux line-numbers

背景

我经常是vim用户,我只是喜欢你可以在不必触及鼠标的情况下导航缓冲区的方式。我特别喜欢相对的线号,让我跳到具有完美适应性的特定线条,它只是让导航速度更快。我也使用tmux,因为我的终端经常会有很多东西。

最让我烦恼的是当我使用tmux复制模式时,如果你使用箭头键,ctrl + p或k,它只需要永远导航到你要复制的行。

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

我的问题是:

tmux是否支持相对行号?

..或者根本就是行号?

我在网上找不到任何有关此内容的信息。似乎没有人在任何地方提到这一点。还有更好的方法吗?

使用键盘在tmux复制模式下进行超高速导航的任何其他提示也将非常受欢迎。

3 个答案:

答案 0 :(得分:9)

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 ....

我认为复制一段文字就足够了..如果你认为你仍然不能超快速导航",制作一个场景,让我们看看我们怎样才能更快地复制

查看tmux的man-page了解详情。

答案 1 :(得分:2)

我找到了这个提示。只需减少击键次数,即可带您进入生产线。

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

答案 2 :(得分:0)

这是一个完全的骇客,但它可以起作用:

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宽度为3的水平窗格-l水平分割(即在当前窗格旁边而不是上方或下方放置一个新窗格)需要多于3位的行号...(0-999)在当前窗格的左侧-b处并在其中运行命令:
    • printf ...只是将背景颜色设置为黄色,将前景色设置为黑色...如果您不喜欢,可以省略此位:)
    • seq 200 1打印行号从200到1-如果屏幕很高,则可以扩展行号!
    • echo -n 0在最后一行打印0,因为seq将打印结尾的换行符,我们不希望这样做
    • read等待您按下Enter键-这是我们阻止echo完成后关闭它的方式
  • tmux select-pane -l使您跳回去专注于正在处理的窗格

选择窗格,然后按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