[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Problemen met lange commando's in terminal



Op 07-04-11 13:36, Arjen Bax schreef:
> Op 7 april 2011 10:03 heeft Paul van der Vlis <paul@vandervlis.nl> het
> volgende geschreven:
>> Al jaren erger ik me vreselijk aan het volgende: als een commando langer
>> is dan een regel levert dit soms problemen op. Het komt er dan op neer
>> dat de tweede regel over de eerste regel wordt getoond.
> 
> Ja, dat ken ik ook. Zodra de cursor bij het typen in een
> terminalscherm bij de rechterrand komt, gebeurt de terugloop naar
> dezelfde regel, in plaats van de volgende regel, zodat de net getypte
> regel vanaf links wordt overschreven. Volgens mij ligt het aan bash
> (in sh [/bin/sh -> dash] heb ik er geen last van, maar ja, dan heb je
> ook geen line-edit).
> 
> $ echo $0
> bash
> 
> Ik heb er last van in de volgende terminal-emulators:
> konsole
> gnome-terminal
> PuTTY
> en met de volgende TERM-waarden:
> screen
> xterm
> putty
> 
> Het probleem gaat weg als ik de volgende TERM-waarde instel:
> $ export TERM=vt100-nam
> maar dan krijg ik een ander probleem, namelijk dat mijn cursor
> initieel verkeerd wordt geplaatst als ik lange commando's terughaal
> met {pijltje omhoog} of {Esc}-k (ik werk met set -o vi).
> 
> Nog een paar proefjes tonen aan dat het probleem (ook) samenhangt met
> de instelling van PS1. Die is bij mij nu (in .bashrc):
> PS1="$(tput bold)$(id -un):\$PWD\\n\$ $(tput sgr0)"
> dus met bold (\E1m) en verdeeld over twee regels (\\n).
> Als ik PS1 terugzet naar
> PS1='$ '
> heb ik geen problemen met lange regels (het probleem verdwijnt), zowel
> bij gewoon typen als bij history-edit.
> 
> Nog wat proefnemingen...
> 
> Het ligt inderdaad aan PS1. Als ik de volgende regel in .bashrc zet,
> zijn de problemen verdwenen:
> PS1="\[$(tput bold)\]$(id -un):\w\n\$ \[$(tput sgr0)\]"
> De belangrijkste wijziging:
> \[ \] om de escapecodes voor bold en normal heen, zodat voor bash
> duidelijk is dat die tekens de cursor niet verplaatsen.

Hmm, ik kan je niet helemaal volgen, maar is hierdoor nu ook duidelijk
geworden waardoor het probleem ontstaat, wellicht door een bepaald teken?

Mijn PS1 is overigens dit:
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$

> OT: gelijk $PWD veranderd in \w, $ in \$ en \\n in \n.

Ik kan je weer niet helemaal volgen, $PWD hoort toch je home-dir te geven?

Met vriendelijke groet,
Paul van der Vlis.




-- 
http://www.vandervlis.nl/


Reply to: