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-wC-b ]

要旨

錯誤修復、增強功能等: https://gist.github.com/mklepaczewski/ee9c4cd85f678859c90844ef18ac8ceb

示範

git status

在此輸入影像描述

之後C-b [和 3x C-Up

在此輸入影像描述

現在只需C-w(複製)然後C-b ](貼上)即可

相關內容