Comment faire fonctionner la recherche inversée bash dans Terminal.app sans qu'elle affiche une sortie tronquée ?

StackOverflow https://stackoverflow.com/questions/35563

  •  09-06-2019
  •  | 
  •  

Question

En utilisant Terminal.app sur OS X 10.5, vous voyez souvent les commandes être tronquées lorsque vous effectuez une recherche inversée avec Bash.Existe-t-il une sorte de termcap ou peut-être une commande bash shopt qui peut résoudre ce problème ?Il est très ennuyeux.

Étapes à reproduire :Ouvrez Terminal.app, effectuez une recherche inversée vers une commande assez longue.Appuyez sur <ctrl>-E une fois que vous avez trouvé la commande.Le curseur va à la fin de la ligne, mais l'affichage ne se met pas à jour.

Je suppose que c'est une sorte de problème avec la bibliothèque readline sous OS X.C'est plus un problème de mise à jour de la position du curseur après une recherche qu'autre chose.Fondamentalement, ctrl-a et ctrl-e ont tendance à interrompre le résultat de la recherche.

Image d'échec du terminal OS X http://involution.com/images/osxterminal.png

Dans ce qui précède, la première partie de la commande doit être affichée et le curseur doit être à la fin de la ligne, mais ce n'est pas le cas.Vous ne pouvez littéralement pas voir ce que vous modifiez lorsque cela se produit.

Était-ce utile?

La solution

J'ai pu définir mon TERM sur xterm au lieu de xterm-color et cela résout le problème.(exporter TERM=xterm).

Autres conseils

Vous voudrez peut-être consulter ce post.

invite-bash-dans-os-x-terminal-cassé

J'ai eu le même problème et cela concernait la variable PS1.Faites-moi savoir si cela aide.

Si l'invite comporte des couleurs, il s'agit d'un bug reconnu.
Voir rapport d'erreur message n° 00019.

J'ai rencontré ce bug et même si je ne sais pas comment le résoudre, vous pouvez le contourner en appuyant sur <down><up>

Je ne sais pas si c'est le problème ici, mais une cause très courante d'un écran gâché dans bash (avec n'importe quel émulateur de terminal, pas seulement Terminal.app) est le redimensionnement de la fenêtre.

Bash lira la taille de la fenêtre au démarrage, puis supposera qu'elle n'a pas changé.Lorsque la fenêtre est redimensionnée, un signal sera envoyé à l'application en cours de lecture sur la console.Si ce n'est pas bash (parce que vous utilisez peut-être un éditeur de texte à ce moment-là), alors bash ne le saura pas.

La solution dans ce cas est de redimensionner à nouveau la fenêtre afin que bash reçoive le signal et remarque la nouvelle taille.

Je ne peux pas reproduire cela, je frappe non plus Ctrl+E, Ctrl+UN ou les touches fléchées mettent à jour correctement la ligne de commande.Utilisez-vous 10.5.4 ?Est-ce peut-être un bug des versions antérieures ?

Dans le pire des cas, vous pouvez lancer le serveur X (quelque part sous utilitaires) et lancer un vrai xterm.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top