Поддерживает ли tmux относительные номера строк?

Фон.

Я частый пользователь vim, мне просто нравится, как вы можете перемещаться по буферам, не имея при этом возможности для мыши. Я особенно люблю относительные номера строк, которые позволяют мне перейти к определенным линиям с отличным качеством, это просто делает навигацию намного быстрее. Я также использую tmux совсем немного, так как у меня часто бывает много вещей, которые происходят в моем терминале.

То, что меня больше всего беспокоит, - это когда я использую режим копирования tmux, для перехода к линиям, которые вы хотите скопировать, просто требуется навсегда, если вы используете клавиши со стрелками, ctrl + p или k.

Поиск уникального ключевого слова в буфере также не идеален, но может быть быстрее, если вы уже знаете, что искать. Много времени, когда вы делаете поиск только для того, чтобы обнаружить, что ключевое слово, которое вы искали, не было таким уникальным, и вы все равно не попали в нужную вам линию.

Мой вопрос:

Поддерживает ли tmux относительные номера строк?

.. или номера строк вообще?

Я не могу найти информацию об этом в Интернете. Кажется, никто ничего не упоминает об этом. Есть ли лучший способ?

Также будут очень приветствованы любые другие советы по сверхскоростной навигации в режиме копирования tmux с использованием клавиатуры.

Ответ 1

tmux имеет систему linenumber в режиме копирования. однако первая строка является очень нижней линией.

В режиме копирования вы можете нажать : на go to line, но нет возможности отобразить номер строки. Вы можете использовать некоторые движки vim (key-mode был установлен как vi) в режиме копирования, например. j k 20j 20k f F t T gg G 20G H L M ^ $ / ? ctrl-u ctrl-d w b ....

Я думаю, что для копирования блока текста достаточно. Если вы считаете, что по-прежнему не можете "сверхскоростную навигацию", создайте сценарий, посмотрим, как мы можем копировать быстрее.

проверьте man-страницу tmux для деталей.

Ответ 2

Я нашел этот совет. Это приведет вас к вашей линии с меньшим количеством нажатий клавиш.

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

Ответ 3

Это полный взлом, но он работает:

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 (вам вряд ли понадобится более 3 цифр номера строки... 0-999) слева -b от текущей панели и запускает в ней команду:
    • printf ... просто устанавливает цвет фона на желтый, а цвет переднего плана - на черный... Вы можете опустить этот бит, если не чувствуете себя модно :)
    • seq 200 1 печатает номера строк от 200 до 1 - увеличивайте, если у вас высокий экран!
    • echo -n 0 печатает 0 в последней строке, потому что seq напечатает завершающий символ новой строки, и мы не хотим, чтобы это
    • read ждет, пока вы нажмете ввод - вот как мы блокируем его закрытие после завершения echo
  • tmux select-pane -l возвращает вас назад, чтобы сфокусироваться на панели, над которой вы работали

Выберите панель и нажмите клавишу ввода, чтобы закрыть ее.

Я хотел бы представить, что вы можете сделать что-то, добавить имя для новой панели и создать привязку клавиш для ее открытия и закрытия из панели, на которой вы фактически пытаетесь сосчитать номера строк, но сейчас я просто использую привязку:

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