В режиме копирования я бы хотел, чтобы клавиши навигации на клавиатуре автоматически выбирали всю текущую строку. В идеале выбранная строка обрезалась бы при выборе/копировании/вставке.
Пример
Мне часто нужно выбрать целые, обрезанные строки, чтобы выбрать вывод 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 ]
(вставить)