Existe-t-il un moyen de faire less
répéter la première ligne du programme (ou les 2 premières lignes) sur chaque page affichée?
Y a-t-il un autre programme de téléavertisseur qui peut le faire?
Ce serait une application de tueur pour la navigation dans les tables de base de données, pensez mysql
ou psql
ou gqlplus
...
Pour ceux d'entre vous qui ne comprennent pas l'idée, voir la capture d'écran en bas de cette page . Je veux répéter la ligne d'en-tête + la barre ascii horizontale.
command-line
less
pager
filiprem
la source
la source
Réponses:
Il existe une solution utilisant Vim.
Tout d'abord, nous avons besoin d'une macro Vim, qui fera la plupart du travail, je l'enregistre dans
~/.vim/plugin/less.vim
:Deuxièmement, pour émuler un pager, j'ai besoin d'appeler vim pour qu'il:
J'ai mis cela ensemble comme script d'aide dans
~/bin/vimpager
:Troisièmement, je dois remplacer la variable d'environnement $ PAGER, mais uniquement pour psql (ajouter ceci à mon
~/.bash_aliases
):la source
Avez-vous essayé le mode SQL dans Emacs / XEmacs?
Ce n'est certainement pas aussi simple à utiliser que
more
ouless
, mais il fait ce que vous demandez, en laissant une ligne d'en-tête tout en faisant défiler les résultats verticalement et horizontalement.la source
Cela emprunte très fortement à la réponse acceptée, mais ajoute ...
NULL
Vrai / Faux (et T / F, O / N, Oui / Non)Certaines portions devront peut-être être modifiées pour votre sortie spécifique, car je ne les utilise pas
psql
. J'ai également des fonctions d'assistance légèrement différentes pour mes besoins, mais elles sont similaires à celles de la réponse acceptée.Exemple d'entrée
Code
la source
Vous pouvez utiliser plusieurs «régions» dans
screen
:Il vous suffit ensuite de définir la variable d'environnement $ FILE:
la source
fit
commande screen). J'avais pensé que vous ne vouliez pas que le haut défile. Lorsque je l'ai testé moi-même, les deux fenêtres défilent comme elles le devraient. Le haut fait défiler deux lignes (1-2, 3-4, 5-6, etc.) et le bas défile selon les besoins. Quel est le comportement que vous voyez /Vous pouvez ajouter un nombre avant le «avant» et il fera défiler N lignes, pas une longueur complète. Donc, si votre fenêtre de terminal est de 40 lignes, tapez
38f
pour commencer à faire défiler seulement 38 lignes, en laissant les 2 dernières lignes de la dernière «page». Depuis la page de manuel:la source
screen
outmux
pour créer deux volets, redimensionnez la première à deux lignes (resize 2
) puis exécutezless
, dans le deuxième volet, exécutezless
normalement. Vous pouvez configurer cela comme un script avec un fichier .screenrc spécifique. Voir autre réponse.