Gibt es eine Möglichkeit, das less
Programm auf jeder angezeigten Seite die erste Zeile (oder die ersten beiden Zeilen) wiederholen zu lassen ?
Gibt es ein anderes Pager-Programm, das das kann?
Dies wäre eine Killer-App zum Durchsuchen von Datenbanktabellen, zum Nachdenken mysql
oder psql
oder gqlplus
...
Diejenigen unter Ihnen, die keine Ahnung haben, finden den Screenshot unten auf dieser Seite . Ich möchte die Kopfzeile + horizontale ASCII-Leiste wiederholen.
command-line
less
pager
filiprem
quelle
quelle
Antworten:
Es gibt eine Lösung mit Vim.
Zuerst brauchen wir ein Vim-Makro, das den größten Teil der Arbeit erledigt. Ich speichere es in
~/.vim/plugin/less.vim
:Zweitens, um einen Pager zu emulieren, muss ich vim aufrufen, damit es:
Ich habe dies als Hilfsskript zusammengestellt in
~/bin/vimpager
:Drittens muss ich die Umgebungsvariable $ PAGER überschreiben, aber nur für psql (füge dies zu meiner hinzu
~/.bash_aliases
):quelle
Haben Sie den SQL-Modus in Emacs / XEmacs ausprobiert ?
Es ist sicherlich nicht so einfach zu bedienen wie
more
oderless
, aber es macht das, wonach Sie gefragt haben, indem es beim vertikalen und horizontalen Scrollen eine Kopfzeile hinterlässt.quelle
Dies lehnt sich sehr stark an die akzeptierte Antwort an, fügt aber hinzu ...
NULL
Wahr / Falsch (und T / F, J / N, Ja / Nein)Einige Teile müssen möglicherweise für Ihre spezifische Ausgabe optimiert werden, da ich sie nicht verwende
psql
. Ich habe auch etwas andere Hilfsfunktionen für meine Zwecke, aber sie ähneln denen in der akzeptierten Antwort.Probeneingabe
Code
quelle
Sie können mehrere "Regionen" verwenden in
screen
:Dann müssen Sie nur noch die Umgebungsvariable $ FILE setzen:
quelle
fit
Befehl screen nicht ausgeführt wird ). Ich hatte gedacht, Sie wollten nicht, dass oben gescrollt wird. Als ich es alleine getestet habe, scrollen beide Fenster so, wie sie sollten. Mit der oberen Taste werden zwei Zeilen (1-2, 3-4, 5-6 usw.) und mit der unteren Taste nach Bedarf gescrollt. Was ist das Verhalten, das Sie sehen /Sie können eine Zahl vor dem 'Vorwärts' einfügen und es werden N Zeilen gescrollt, nicht eine volle Länge. Wenn Ihr Terminalfenster also 40 Zeilen hat, geben Sie Folgendes ein
38f
, um nur 38 Zeilen zu scrollen und die letzten 2 Zeilen der letzten "Seite" zu belassen. Aus der Manpage:quelle
screen
odertmux
, um zwei Fenster zu erstellen, ändern Sie die Größe der ersten bis zwei Zeilen (resize 2
) und führen Sie dannless
im zweiten Fenster dieless
normale Ausführung aus . Sie können dies als Skript mit einer bestimmten .screenrc-Datei einrichten. Siehe alternative Antwort.