Supposons que j'ai un grand fichier de données, qui déborde l'écran à la fois verticalement et horizontalement. Comment puis-je parcourir ce fichier, alors que les lignes d'en-tête restent à l'écran?
Pour le moment, j'utilise less -S
, afin que je puisse bien faire défiler mon fichier horizontalement et verticalement. Cependant, lors du défilement vers le bas, les lignes d'en-tête disparaissent évidemment. Existe-t-il un moyen de les conserver en utilisant moins?
Une alternative consiste à utiliser vim
en mode écran partagé avec :set nowrap
. Cependant, maintenant, si je fais défiler horizontalement, la fenêtre supérieure ne défile pas de la même manière ( :windo set scrollbind
ne fonctionne que pour le défilement vertical pour autant que je sache).
less
outail -f
qui se comportent exactement comme ils le font normalement, sauf que la première ligne affichée à l'écran serait toujours la ligne d'en-tête. Comme les sites Web (ou Excel) avec un en-tête fixe mais un corps défilant.Réponses:
Si vous connaissez vim, c'est probablement la meilleure option pour vous. Vous pouvez activer horizontal-scroll-bind-only en modifiant
'scrollopt'
:Donc, avec
vim -u NONE
, vous obtenez le comportement souhaité avec:Vous souhaiterez peut-être ajuster
'sidescroll'
et'sidescrolloff'
modifier le nombre de colonnes sautées et la distance à partir de laquelle le saut de bord commence respectivement.la source
hor
, voir la réponse mise à jourSur les terminaux prenant en charge la définition de la région de défilement:
(suppose un shell comme
zsh
oubash
qui définit les variables$COLUMNS
et en$LINES
fonction de la taille du terminal).la source
q
2. faire défiler vers le bas avec les touchesup
etdown
less
sans utiliserhead
ettail
de redessiner l'écran à chaque fois? J'ai toujours <3 votre solution btw. Je ne le marque pas encore correctement parce que vous semblez le modifier et je ne veux pas que vous soyez complaisant; la complaisance est un tueur de créativité, me dit-on! :)less -X
à la place detail -n ...
ci - dessus mais la touche "up" supprime l'en-tête là-bas.less
environnement pris en sandwich entre un en-tête et un pied de page, pour en faire un outil plus général.Essayez ceci (vous devrez installer
multitail
):ou, pour les en-têtes de plus d'une ligne:
Si vous souhaitez suivre la sortie de la commande au lieu d'un fichier:
ou utiliser
-t
selon le cas. Notez que vous devrez peut-être utiliserunbuffer
pour que la sortie de votre commande apparaisse immédiatement.Vous pouvez utiliser
-D
pour désactiver l'affichage des lignes d'état pour les-wh
formulaires (cela irait à l'encontre de l'objectif du-t
formulaire).la source
La réponse de Thor n'a pas mentionné la désactivation du "scrollopt" vertical, ce qui fait défiler les deux fenêtres verticalement. Donc pour moi, la solution complète est de coller ceci dans vim:
la source
scrollopt
directement avec:scrollopt=hor
ou:scrollopt=hor,jump
, selon vos préférences. Voici le VimDoc pourscrollopt
.Voici ce que j'ai obtenu avec
tmux
:C'est une extension de la réponse de user80519 pour le
tmux
fractionnement de fenêtres. Enregistrez soushless.sh
, rendez-le exécutable et utilisez-le commela source