Ich habe gerade festgestellt, dass ich die folgenden Zeilen hinzufügen kann ~/.vimrc
.
set mouse=a
:vmap <C-C> "+y
Dies hat den Effekt, dass Sie Text mit der Maus auswählen können (dh im visuellen Modus) und dann den eigentlichen Text mit Ctrl+ in die X-Zwischenablage kopieren können c. Dies unterscheidet sich von der Standardkopie vom Terminal, da es sich um den tatsächlichen Text handelt, den ich kopiere, und nicht um das, was das Terminal sieht. Wenn der Text beispielsweise Registerkarten enthält, habe ich sie zuvor als Leerzeichen kopiert.
Gibt es eine Möglichkeit, weniger dazu zu bringen, sich genauso zu verhalten? dh kann ich wörtlich kopieren, was in der Textdatei ist, die ich in weniger ansehe?
Antworten:
Keine Aufgabe für weniger
Nein,
ich glaube nicht, dass Sie das direkt tun können, weil weniger zunächst keinen Cursor hat.
Man müsste navigieren, um den Text zu beginnen und zu beenden.
less
ist einfach nicht das richtige Werkzeug für die Navigation auf Zeichenebene.Tabs bereits erweitert
Sie können die Taste shiftund die Maus verwenden, um eine Auswahl zu treffen. Dies wird vom Terminal erledigt, nicht von weniger. Das Terminal weiß jedoch nicht, wie Leerzeichen und Tabulatoren angeordnet sind - weniger die interne Interpretation von Tabulatoren und schreibt nur normale "
" Zeichen auf den Bildschirm.
Es gibt Werkzeuge , wie
screen
,tmux
undbyobu
, die viele beeindruckende Dinge in diesem Bereich tun. Ich habe es nicht überprüft, aber ich gehe davon aus, dass diese Terminal-Multiplexer keinen Weg daran vorbei haben - letztendlich Terminals - und sich gleich verhalten werden.Verwenden Sie vim
Wenn Sie eine Datei in zeigen
less
, gibt es eine schöne Lösung:Drücken Sie die Taste vin
less
der aktuellen Datei in öffnenvim
- asuming Ihre$EDITOR
usw. eingerichtet ist fürvim
.Dies funktioniert nicht, wenn stdin aus einer Pipeline oder so angezeigt wird, obwohl es Problemumgehungen gibt .
Zumindest Maus-Scrollen
Sie können aber zumindest mit dem Mausrad scrollen:
Das scheint sogar standardmäßig aktiviert zu sein, aber die Mausradereignisse werden durch eine andere Option unterdrückt.
Versuchen Sie für einen schnellen Test:
Die Option
-X
(--no-init
) blockiert das Scrollen - überprüfen Sie, was Ihre UmgebungsvariableLESS
enthält:Die Option
-q
(--quiet
,--silent
) verursacht laut SU auch Probleme : Wie lässt man das Mausrad mit Bash und Gnome-Terminal weniger Pager scrollen?quelle
v
Schlüssel ist fantastisch! (Ich habe mir die Freiheit einer coolen Problemumgehung genommen, um sie auch in Pipelines zum Laufen zu bringen.) FWIW in meinem Terminalemulator (Terminator) Ich muss die Umschalttaste nicht gedrückt halten, wenn ich Text auswähle.vimpager
dem Sie denless
gesamten Verkauf ersetzen können . Es wird eigentlich nurvim
in einem kleinen Skript verpackt verwendet .vimpager
sieht ziemlich cool aus, aber ich hatte Probleme mit dem Ruckeln , weshalb ich es vorziehe, weniger und zu verwendenv
.vimpager
bis es funktioniert. (Ich bemühe mich, nicht alle meinevim
Plugins beim Starten zu aktivierenvimpager
...)Sie können die angezeigte oberste Zeile in
less
die X11 CLIPBOARD-Auswahl kopieren, indem Sie Folgendes eingebenless
:Dadurch wird der weniger Puffer von der obersten Zeile zur
.
Markierung (alsohead -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: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:Und definieren Sie xterm-Übersetzungstabellen (hier in der Befehlszeile zum Testen, aber Sie möchten dies einer X-Ressourcendatei hinzufügen):
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 wirdman
), da bei der Eingabe, der zugeführtlesspaste
wird , die Leerzeilen nicht gequetscht werden (daher können die Versätze der Zeilennummern falsch sein).) .quelle
less
ich irgendeine Art von Feedback geben?j
scheint nichts für mich zu tun.less
,j
scrolltforw-line
in der Standard-Tastenkombination um eine Zeile ( ) nach unten (eigentlichJ
(forw-line-force
) wäre hier besser, ich werde sie bearbeiten).|
sollte Ihnen ein Feedback geben. (Eingabeaufforderung für die Markierung und dann Eingabe des Befehls).j
nichts getan. Die erste Option funktioniert jetzt (+1). Die zweite Option scheint mit ein paar Einschränkungen ziemlich kompliziert zu sein, deshalb habe ich sie nicht ausprobiert. Ich denkev
ist gut genug für mich.