Configurer xterm : arreter defilement

Configurer xterm : arreter defilement - Logiciels - Linux et OS Alternatifs

Marsh Posté le 22-09-2008 à 15:23:24    

Bonjour,
 
je voudrais que xterm arrête le défilement de la console quand je ne suis pas sur la dernière ligne.
 
Typiquement, je lance une commande verbeuse (ls -lR /) et remonte dans l'historique pour lire une ligne. Je voudrais qu'elle reste fixe.  
 
Cordialement
 
trax

Reply

Marsh Posté le 22-09-2008 à 15:23:24   

Reply

Marsh Posté le 22-09-2008 à 15:34:05    

http://fr.wikipedia.org/wiki/Tube_Unix
 
+ man less (ou man more)

Reply

Marsh Posté le 22-09-2008 à 15:35:47    

heureusement qu'il y avait écrit *configurer xterm*
c'est dans xterm que je veux configurer la chose. Comme par défaut sur gnome-terminal ou konsole  
 

Reply

Marsh Posté le 22-09-2008 à 15:59:05    

ScrollTtyOutput dans le menu VT option de xterm alors?


Message édité par Gf4x3443 le 22-09-2008 à 15:59:18

---------------
Petit guide Kerberos pour l'administrateur pressé
Reply

Marsh Posté le 22-09-2008 à 16:05:14    

déjà testé
la ça ne scroll plus avec cette option (barre de défilement reste fixe) mais le texte continu de défiler.  
Justement pour que le texte a l'écran reste fixe, alors que le programme en cours continue d'écrire dans le stdout, il faut que la barre de défilement bouge en conséquence (pour rester sur la même page écran)

Reply

Marsh Posté le 23-09-2008 à 14:17:33    

drapal, bonne question :D

Reply

Marsh Posté le 24-09-2008 à 14:52:02    

Voilà le genre de question qui m'empêche de dormir la nuit !

Reply

Marsh Posté le 29-09-2008 à 12:02:14    

Sinon tu sais que tu peux arrêter manuellement le défilement automatique en freezant les i/o ?

Reply

Marsh Posté le 29-09-2008 à 12:52:42    

Yop deux mannières =>  
 
1.
Ctrl-z (et fg ou bg pour relancer respectivement foreground ou background) freeze tout le programme
 
2.
ou plus spécifique a xterm Ctrl+s/Ctrl+q
 
mais ce que je voudrais c'est justement ne pas stopper le programme :s
gnome-terminal, qui a ce que je sais est basé sur xterm, sait le faire

Reply

Marsh Posté le 30-09-2008 à 22:21:22    

traxos a écrit :


2.
ou plus spécifique a xterm Ctrl+s/Ctrl+q
 
mais ce que je voudrais c'est justement ne pas stopper le programme :s


 
La deuxième méthode ne stoppe pas "réellement" le programme, elle ne fait que bufferiser les entrées et sorties entre le xterm et le programme. Le programme continue de tourner à plein régime tant qu'il n'attend pas d'intervention utilisateur.
 
Après un Ctrl+s, stdout part dans un buffer qui est vidé sur l'écran xterm à l'appuie de ctrl+q, même chose pour stdin mais dans le sens inverse entre un buffer et le flux d'entrée du programme.
 
Certes stdin est comme bloqué mais quand on lit un historique, on est pas en mesure de saisir quelque chose, c'est donc une pure option d'affichage : ça permet de scroller vers le haut mais d'une manière moins pratique.
 
edit: enfin et quand le buffer de stdout est plein, ça peut bloquer c'est vrai


Message édité par czh le 01-10-2008 à 00:21:33
Reply

Marsh Posté le 30-09-2008 à 22:21:22   

Reply

Marsh Posté le 01-10-2008 à 12:39:26    

Donc selon toi si je lance ce script, que que je stop la console, que j'attends 10 secondes il devrait écrire d'un coup d'un seul tous les plop ?  
 

Code :
  1. j=0
  2. for i in `seq 0 9`
  3. do
  4.     echo plop $j
  5.     j=$[$j+1]
  6.     sleep 1s
  7. done


 
parce que chez moi ce n'est pas ce que ça fait :(
(et mon emerge n'a pas non plus l'air de continuer quand je fais ça :(

Reply

Marsh Posté le 01-10-2008 à 19:36:55    

traxos a écrit :

Donc selon toi si je lance ce script, que que je stop la console, que j'attends 10 secondes il devrait écrire d'un coup d'un seul tous les plop ?

 
Code :
  1. j=0
  2. for i in `seq 0 9`
  3. do
  4.     echo plop $j
  5.     j=$[$j+1]
  6.     sleep 1s
  7. done
 

parce que chez moi ce n'est pas ce que ça fait :(
(et mon emerge n'a pas non plus l'air de continuer quand je fais ça :(

 

Non, les buffers ne s'appliquent qu'au processus en cours. Dans ton script tu fais plusieurs echo, et le tty en devient bloquant, vu que chaque echo est un processus.

 

Pour que cela marche, il faut que la commande soit un builtin shell, ou executable seul. Un programme en C, ca marchera:

 
Code :
  1. #include <stdio.h>
  2. #include <unistd.h>
  3. int main (void) {
  4. int i;
  5. for (i = 0; i < 10; i++) {
  6.  printf("%d\n", i);
  7.  sleep(1);
  8. }
  9. return 0;
  10. }


Message édité par Gf4x3443 le 01-10-2008 à 19:37:26

---------------
Petit guide Kerberos pour l'administrateur pressé
Reply

Marsh Posté le 02-10-2008 à 13:01:59    

Question bête : chez toi ça fonctionne ? Chez moi non... :( Ca arrête le programme qu'il soit en C ou en bash.

Reply

Marsh Posté le 02-10-2008 à 18:59:01    

Oui. pdksh sous netbsd 4.


---------------
Petit guide Kerberos pour l'administrateur pressé
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed