Sie können die angezeigte oberste Zeile in lessdie 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 cpraktisch 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 lessTastenkombinationen 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 xtermkönnen Sie hier auch einen neuen Auswahlmodus definieren, Ctrl+Altwenn Sie die Auswahl erweitern, um anzugeben, lesswelche Zeilen vom aktuellen Bildschirm kopiert werden sollen:
Schreiben Sie ein lesspasteSkript 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 lesspastemit 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 lesses aufgerufen wird -s, um Leerzeilen zu quetschen (wie es typisch ist, wenn es von aufgerufen wird man), da bei der Eingabe, der zugeführt lesspastewird , die Leerzeilen nicht gequetscht werden (daher können die Versätze der Zeilennummern falsch sein).) .