I have a custom $PS1 variable that looks like this on my command line: enter image description here

And on emacs using M-x shell unfortunately looks like this: enter image description here

Here is my $PS1 variable export PS1='\[\e]0;\u@\h: \w\a\]\[\e[0;36m\]\T \[\e[1;30m\]\[\e[0;34m\]\u@\H\[\e[1;30m\] \[\e[0;32m\]\[\e[1;37m\]\w\[\e[0;37m\] \$ '

How can I make emacs shell-mode look the same with my CLI variable?


Leave the set title part to the terminals that support it:

case $TERM in
  (xterm*) set_title='\[\e]0;\u@\h: \w\a\]';;
  (*) set_title=
PS1=$set_title'\[\e[0;36m\]\T \[\e[1;30m\]\[\e[0;34m\]\u@\H\[\e[1;30m\] \[\e[0;32m\]\[\e[1;37m\]\w\[\e[0;37m\] \$ '
  • Your answer worked fine but when I go to shell mode everytime I use a command the previous name information and time are lost. – Spyros Chiotakis Sep 1 '13 at 14:10
  • 1
    Not sure what you mean, but in your prompt, you set the text colour to white, which may explain why you can't see things. – Stéphane Chazelas Sep 1 '13 at 14:15
  • Ok fixed just changed the colours. It was that the ubuntu CLI background is purple and my output was white. But on emacs the background was already white so I couldn't see a thing. – Spyros Chiotakis Sep 1 '13 at 14:29

You have some commands in your PS1 that set the title of the terminal window. These are confusing the emacs shell. Changing your PS1 to this should work:

export PS1='\[\e[0;36m\]\T \[\e[0;34m\]\u@\H \[\e[1;37m\]\w\[\e[0;37m\] \$ '
  • The \e]0;....\a part sets the Window and icon title in xterm-like terminals. – Stéphane Chazelas Sep 1 '13 at 14:07
  • @StephaneChazelas yes, I just understood that from your answer, thanks. – terdon Sep 1 '13 at 14:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.