So kopieren Sie Text aus weniger


12

Wie kann man den gesamten Puffer kopieren, der von weniger angezeigt wird?
Sie müssen keinen bestimmten Text auswählen, ich möchte alles.
Das Kopieren in die Zwischenablage ist vorzuziehen, aber wenn wir es in eine Datei ausgeben können, die auch funktioniert.

Ich habe versucht, generische vimBefehle wie: w und die hier aufgeführten zu verwenden , aber solche lessBefehle scheinen nicht zu akzeptieren.

BEARBEITEN
Ich muss dies von innen heraus tun können less. Nehmen wir an, das lessstammt pipevon einem Alias, ich habe keine Kontrolle darüber, wie lesses tatsächlich aufgerufen wird. Mir wird nur das Ergebnis präsentiert.
Ich habe eine Möglichkeit gefunden, den Puffer zu speichern (siehe meine Antwort unten). Jetzt muss ich nur noch prüfen, ob es eine Möglichkeit zum Auswählen und Kopieren gibt. Angesichts der Einschränkungen gibt es wahrscheinlich keine.

Antworten:


1

Speichern Sie den lessPuffer xselwie folgt in der Zwischenablage :

  1. Datei öffnen $ less file.txt

  2. In der lessPresse |(Rohr) dann$

  3. Schreiben Sie xsel -iund drücken Sie die Eingabetaste

less Pufferinhalt sollte kopiert werden.


Dies muss das gewesen sein, was @Neil mir zu sagen versuchte
Hashbrown

1
für andere Leute, wie @ahilsend feststellte, xsel -i ist gut für den mittleren Klickpuffer , aber verwenden xsel -ibSie, wenn Sie stattdessen den
Einfügepuffer

5

Geben Sie den Befehl :svon innen ein less, um den Puffer in eine 'Protokoll'-Datei zu schreiben.

Quelle : The "s" command is equivalent to specifying -o from within less


5
save to clipboard
Ich

Es scheint möglich zu sein, ein Zwischenablage- :s /dev/clipboard~/.dev/clipboard
Dateigerät

3
  1. xselzuerst installieren
  2. Mit xsel in die Zwischenablage kopieren: less filename.txt | xsel -i
  3. füge es ein: xsel -o

1
Fügen Sie möglicherweise die -bOption hinzu, um die Auswahl der Zwischenablage zu verwenden.
Ahilsend

Danke @ahilsend, du hast recht. Übrigens verwende ich Clipit, um Zwischenablagen zu synchronisieren, und es funktioniert gut.
rwxrwxrwx

Ich sollte genauer sein, ich starte den lessBefehl nicht. Die lessAnsicht ist aktiv und Sie müssen den Inhalt dann kopieren. Ich denke also, dass es notwendig ist, eine eingebaute Funktionalität zu verwenden. Rohrleitungen können nicht verwendet werden
Hashbrown

3

Sie können den 'v'-Befehl von less dafür wiederverwenden.

Schauen Sie sich die Manpage für weniger an, speziell über LESSEDIT. Sie können den Vorschlag von @ rwxrwxrwx verwenden, wenn Sie vorab eine kleine Einrichtung vornehmen (möglicherweise in Ihrer .bashrc):

bash$ export LESSEDIT="%E < %f"
bash$ export EDITOR="xsel -ib"

Wenn weniger ausgeführt wird, drücken Sie 'v', um die aktuelle Datei im $ EDITOR zu öffnen. In diesem Fall öffnen Sie es mit xsel -ib < {the file's name}.

Mit wird xsel -ibdie Daten in die Zwischenablage verschoben, sodass Sie mit Strg-V die Daten an der gewünschten Stelle einfügen können.


Soweit ich weiß, können Sie nicht verwenden, :vwenn die Eingabe von kommt std-in, was in meinem Fall der Fall ist. Wird diese Methode dies irgendwie vermitteln?
Hashbrown

3
Sie können den Inhalt eines beliebigen Puffers mit in die Zwischenablage leiten g|$xsel -ib.
Neil

Sie können Ihren PFAD auch so ändern, dass er lessdurch etwas ersetzt wird, das zu vim umleitet.
Neil

Das würde eigentlich funktionieren. Sehr aufdringlich, wird aber funktionieren, @Neil
Hashbrown

Wenn ich es versuche, bekomme ich weniger /etc/php.ini | xsel -ib xsel: Anzeige kann nicht geöffnet werden: (null) Was mache ich falsch?
vfbsilva
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.