So wählen Sie eine Ausgabe im Terminal ohne Maus aus (kopieren sie)

10

Es scheint eine typische Art und Weise zu sein, dass Sie eine Ausgabe im Terminal haben und wenn Sie eine bestimmte Phrase auswählen möchten, verwenden Sie Ihre Maus, um sie zu kopieren. Gibt es jedoch eine Möglichkeit, ohne Verwendung einer Maus auszuwählen? Wenn ich beispielsweise lseine Datei eingebe und eine Liste mit Dateien erhalte und die zweite Datei (zweite Zeile) auswählen möchte, gibt es eine Möglichkeit, den Namen ohne Maus zu kopieren?

Negrito
quelle

Antworten:

10

Verwenden von tmux:

Ich benutze tmuxim vi-Modus:

  1. Wechseln Sie in den Kopiermodus (in meiner Konfiguration Prefix+ escapeist das Standardpräfix Ctrl+ b)
    • In der Konfigurationsdatei ( ~/.tmux.conf):bind Escape copy-mode
  2. Bewegen Sie sich (mit Pfeilen)
  3. Wählen Sie Ihre gewünschte Ausgabe (Auswahl starten mit Space)
    • In meiner Konfiguration v:bind-key -T copy-mode-vi y send-keys -X begin-selection
  4. Drücken Sie, Enterum den Text zu kopieren.
    • In meiner Konfiguration y:bind-key -T copy-mode-vi y send-keys -X copy-selection
  5. Drücken Sie Prefix+ pzum Einfügen.

Geben Sie hier die Bildbeschreibung ein

Erstellen Sie auch eine Schlüsselbindung wie folgt:

bind C-c run "tmux save-buffer - | xsel -bi"

Sie können den Puffer also in der System-Zwischenablage speichern, indem Sie Prefix+ Ctrl+ drücken c.

Ich habe meine Konfiguration hinzugefügt, da sie eher vim als der Standardkonfiguration ähnelt.


Befehle verwenden:

Folgendes mache ich:

  1. Führen Sie den Befehl (zB: ls -1)
  2. Verarbeiten Sie die Ausgabe, um das gewünschte Ergebnis zu erhalten
  3. Pip es zu xsel -bi

In Ihrem Beispiel:

$ ls -1 | sed -n 2p | xsel -bi
  • ls -1 druckt die Ausgaben jeweils in einer Zeile
  • sed -n 2p Holen Sie sich die zweite Zeile
  • xsel wurde verwendet, um das Endergebnis in die Zwischenablage zu kopieren.

Wenn die Ausführung des Befehls zu lange dauert, speichern Sie zuerst die Ausgabe in einer Datei, um die Ausgabe zu verarbeiten:

command > output
head -10 output | whatever | xsel -bi
Ravexina
quelle
0

Die gängigsten Emulatoren für Linux-Terminals können dies nicht direkt tun. Es gibt jedoch zwei, die mir bekannt sind.

Eine, die seit geraumer Zeit existiert, ist Termite. Es ist jedoch eher spartanisch (Tastaturkürzel nicht konfigurierbar, keine mehreren Registerkarten).

Jetzt gibt es eine zweite, die diese Funktionen namens Mantid hat (die ich hier schamlos bewerbe :)):

https://github.com/omgold/mantid-term

Es gibt jedoch noch keinen Ubuntu-Build, einen Arch und eine RPM. Sie könnten jedoch versuchen, ein RPM zu erstellen und mit Alien in deb zu konvertieren.

omgold
quelle
Ich würde es gerne versuchen mantid, kann aber kein Tutorial oder Handbuch finden. Gibt es da draußen irgendwelche Unterlagen? Es wäre gut zu wissen, wie die in der Frage angeforderte Funktionalität erreicht wird.
Luís de Sousa
Es gibt eine Manpage ('man mantid') und Beispielkonfigurationsdateien in / usr / share / mantid. Die Manpage dokumentiert hauptsächlich die Konfigurationsoptionen, und die aktiven Tastenkombinationen können in der Konfigurationsdatei nachgeschlagen werden.
Omgold