Sie können die angezeigte oberste Zeile in less
die X11 CLIPBOARD-Auswahl kopieren, indem Sie Folgendes eingeben less
:
|.head -n1|xclip -sel c<Enter><Enter>
Dadurch wird der weniger Puffer von der obersten Zeile zur .
Markierung (also head -n1|xclip -sel c
praktisch der gesamte Bildschirminhalt) zum Befehl geleitet (um die erste Zeile davon in der CLIPBOARD-Auswahl zu speichern).
Sie können Ihren Terminalemulator so konfigurieren, dass diese Zeichenfolge bei einem bestimmten Tastendruck eingefügt oder in less
Tastenkombinationen an eine Taste oder Tastenkombination gebunden wird. Zum Beispiel, um es zu binden Alt+C:
printf '%s\n' '#commands' '\ec pipe .head -n1|xclip -sel c\n' | lesskey -
Beachten Sie jedoch, dass Sie danach drücken müssen Enter, um die Eingabeaufforderung "| done (drücken Sie RETURN)" zu bestätigen.
Mit xterm
können Sie hier auch einen neuen Auswahlmodus definieren, Ctrl+Altwenn Sie die Auswahl erweitern, um anzugeben, less
welche Zeilen vom aktuellen Bildschirm kopiert werden sollen:
Schreiben Sie ein lesspaste
Skript wie:
#! /bin/sh -
start=${1%%";"*}
end=${1#*" "}
end=${end%";"*}
head -n "$((end))" | tail -n "$((end - start + 1))" | xclip -sel c
Und definieren Sie xterm-Übersetzungstabellen (hier in der Befehlszeile zum Testen, aber Sie möchten dies einer X-Ressourcendatei hinzufügen):
xterm -xrm 'XTerm.VT100.translations: #override \
Meta Ctrl<Btn1Down>: select-start()\n\
Meta Ctrl<Btn1Motion>: select-extend()\n\
Meta Ctrl<Btn1Up>: select-end(SECONDARY) \
insert-formatted("|.lesspaste '\''%P %p'\''\n\n", SECONDARY)'
Sie markieren dann die einzufügenden Linien, indem Sie die Maus mit gedrückter Maustaste ziehen. Ctrl+AltWenn Sie die Taste 1 loslassen, sagt xterm weniger, dass der aktuelle Bildschirm lesspaste
mit den als ein Argument übergebenen Start- und Endkoordinaten an unser Skript weitergeleitet werden soll ( y1;x1 y2;x2
).
(Beachten Sie, dass es möglicherweise nicht richtig funktioniert, wenn less
es aufgerufen wird -s
, um Leerzeilen zu quetschen (wie es typisch ist, wenn es von aufgerufen wird man
), da bei der Eingabe, der zugeführt lesspaste
wird , die Leerzeilen nicht gequetscht werden (daher können die Versätze der Zeilennummern falsch sein).) .