Режим копирования Tmux — автоматическое выделение всей строки и ее обрезка при выделении, копировании или вставке

Режим копирования Tmux — автоматическое выделение всей строки и ее обрезка при выделении, копировании или вставке

В режиме копирования я бы хотел, чтобы клавиши навигации на клавиатуре автоматически выбирали всю текущую строку. В идеале выбранная строка обрезалась бы при выборе/копировании/вставке.

Пример

Мне часто нужно выбрать целые, обрезанные строки, чтобы выбрать вывод git <anything>или ls -1т.п.:

# git status

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        robots.txt
        index.php
        [...]

Я хочу закоммитить robots.txt, поэтому я вхожу в режим копирования и начинаю перемещать курсор в сторону строки robots.txt. При перемещении вверх он выбирает сначала index.php:

# git status

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        robots.txt
        **index.php** (<-- text between ** is auto selected)
        [...]

# git status

Затем при перемещении курсора вверх (с помощью клавиатуры) выделяется строка с robots.txt (обрезанная):

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        **robots.txt** (<-- text between ** is auto selected)
        index.php
        [...]

Можно ли это сделать в текущей версии tmux?

решение1

Решение

Вот макрос, который «переходит вверх/вниз и выбирает обрезанную линию» на C-Up/ C-Down(обычно Control + Up / Control + Down ):

В tmux войдите в командный режим с помощью C-b :, затем используйте следующий код:

bind -T copy-mode C-Up send-keys Up \; send -X back-to-indentation \; send -X begin-selection \;  send -X end-of-line 
bind -T copy-mode C-Down send-keys Down \; send -X back-to-indentation \; send -X begin-selection \;  send -X end-of-line

Чтобы скопировать текст и вставить его, нажмите C-wиC-b ]

Суть

Исправления ошибок, улучшения и т. д.: https://gist.github.com/mklepaczewski/ee9c4cd85f678859c90844ef18ac8ceb

Демо

После git status:

введите описание изображения здесь

После C-b [и 3x C-Up:

введите описание изображения здесь

Теперь осталось только C-w(скопировать) и затем C-b ](вставить)

Связанный контент