Eigene Befehle über eine geöffnete Datei in Less ausführen. Ist das möglich?

Eigene Befehle über eine geöffnete Datei in Less ausführen. Ist das möglich?

Ich habe mich gefragt, ob es möglich wäre, eigene Befehle über den lessBefehl auszuführen. Damit meine ich, dass ich eine Datei öffnen lessund dann einen meiner Befehle über das ausführen kann, was ich sehe (oder sogar über die ganze Datei, falls nötig), während der Bildschirm so bleibt, wie er ist. Ich möchte zum Beispiel verschiedene Skripte ausführen können, die das, was ich gerade sehe, auf unterschiedliche Weise einfärben oder bestimmte Zeilen in der Datei ein-/ausblenden.

Ich weiß, dass ich jedes Mal einen anderen Durchlauf machen kann, cat <file> | my-script | less -Raber das gibt mir nicht die Editor-Erfahrung, die lesses bietet.

Antwort1

|Sie können den Befehl in Less verwenden, um die Datei durch ein anderes Programm zu leiten.

  1. Drücken Sie |.
  2. Geben Sie einen Markierungsbuchstaben oder ^oder $oder ein ..
  3. Geben Sie den auszuführenden Shell-Befehl ein.
  4. Drücken Sie Enter.

Nur der Teil der Datei zwischen der aktuellen Position und der Markierung wird weitergeleitet. Die Markierung kann entweder ^oder sein $, was jeweils den Anfang und das Ende der Datei bedeutet, oder eine mit dem mBefehl definierte Position. Die aktuelle Position ist die Zeile am Bildschirmrand, wenn sich die Markierung davor befindet, und andernfalls die Zeile am unteren Bildschirmrand. Um insbesondere die gesamte Datei weiterzuleiten, verwenden Sie entweder <|$mycommandoder , >|^mycommandum die Position an ein Ende der Datei und die Markierung an das andere Ende zu setzen. Um nur die Zeilen weiterzuleiten, die auf dem Bildschirm angezeigt werden, verwenden Sie die Markierung ..

Die Ausgabe des Befehls bleibt nicht auf dem Bildschirm. Wenn Sie die Ausgabe mit less durchsuchen möchten, müssen Sie eine weitere Instanz starten, z. B. rot13 | less. Wenn Sie diese zweite Instanz von less beenden, werden Sie zur ersten zurückgeführt. Es gibt keine Möglichkeit, den Inhalt der aktuellen Instanz durch von ihr weitergeleitete Daten zu ersetzen. Um Farben anzuzeigen, denken Sie daran, auszuführen less -R.

verwandte Informationen