Problèmes liés au curseur de l'historique du terminal Mac / iTerm

13

Si souvent, j'exécute une commande dans Terminal.app ou iTerm, appuie sur la flèche vers le haut pour revenir en arrière pour la modifier, et le curseur passe à la ligne située au-dessus ou à un endroit totalement au mauvais endroit. Cela arrive surtout lorsque la commande est si longue qu'elle passe à la ligne suivante. Parfois, ces longues commandes apparaissent toutes sur une ligne et parfois, elles s'affichent correctement sur plusieurs lignes.

Cela se produit dans iTerm et Terminal.app

Cela se produit également dans les modes vi et emacs, ce qui les rend quasiment inutilisables.

des idées? Merci!

carillonateur
la source

Réponses:

20

Cela est probablement dû au fait que votre définition d'invite inclut des séquences qui ne doivent pas être comptées dans la longueur de l'invite, telles que celles permettant de définir des couleurs. Ces séquences doivent être comprises entre \[et \]pour éviter que leur longueur ne soit comptée. Voici un exemple produisant une invite entièrement rouge:

PS1='\[\033[31m\]\u@\h:\w\$\[\033[0m\]'
Dennis Williamson
la source
Cette ligne est dans le fichier de configuration (comme .bashrcou .bash_profile), pour quiconque - comme moi - qui n’a aucune idée de ce qu’il a après avoir lu la réponse.
montréaliste