Tmux-Kopiermodus – wählt automatisch die gesamte Zeile aus und kürzt sie beim Auswählen, Kopieren oder Einfügen

Tmux-Kopiermodus – wählt automatisch die gesamte Zeile aus und kürzt sie beim Auswählen, Kopieren oder Einfügen

Im Kopiermodus möchte ich, dass die Navigationstasten der Tastatur automatisch die gesamte aktuelle Zeile auswählen. Idealerweise würde die ausgewählte Zeile beim Auswählen/Kopieren/Einfügen abgeschnitten.

Beispiel

Ich möchte oft ganze, gekürzte Zeilen auswählen, um die Ausgabe daraus auszuwählen, git <anything>oder ls -1usw.:

# git status

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

        robots.txt
        index.php
        [...]

Ich möchte robots.txt übertragen, also gehe ich in den Kopiermodus und beginne, den Cursor in Richtung der robots.txt-Zeile zu bewegen. Wenn ich ihn nach oben bewege, wählt er zuerst Folgendes aus 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

Wenn Sie dann den Cursor nach oben bewegen (mit der Tastatur), wird die Zeile mit robots.txt (gekürzt) ausgewählt:

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

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

Ist das etwas, was in der aktuellen Version von tmux möglich ist?

Antwort1

Lösung

Hier ist ein Makro, das mit C-Up/ C-Down(normalerweise Strg + Aufwärts / Strg + Abwärts) „nach oben/unten geht und die getrimmte Linie auswählt“ ausführt:

Wechseln Sie in tmux in den Befehlsmodus und C-b :verwenden Sie dann den folgenden Code:

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

Um den Text zu kopieren und einzufügen, drücken Sie C-wundC-b ]

Kern

Fehlerbehebungen, Verbesserungen usw.: https://gist.github.com/mklepaczewski/ee9c4cd85f678859c90844ef18ac8ceb

Demo

Nach git status:

Bildbeschreibung hier eingeben

Nach C-b [und 3x C-Up:

Bildbeschreibung hier eingeben

Jetzt müssen Sie nur noch C-w(kopieren) und dann C-b ](einfügen)

verwandte Informationen