8

Is there a way to make eshell behave better? By default printenv TERM returns dumb. For example brew often complains about the terminal type and causes eshell to "jiggle" while the progress bar is showing.

This doesn't happen in term. I suspect this is because TERM=eterm-color.

I know I could just add brew to eshell-visual-commands, but are there any ways of making eterm-color work in eshell.

Here's the video of brew behaving weirdly. Unfortunately I couldn't reproduce the error mentioned: https://www.youtube.com/watch?v=XFhM_ToLuaQ

  • 6
    What specifically are you trying to accomplish? eshell sets TERM to be dumb for a reason--it can't handle a lot of fancier command line interaction (à la top and ssh). brew works fine for me through eshell, and even outputs colors and emoji. – shosti Sep 24 '14 at 22:40
  • @shosti Updated the question with a video example – Maciej Goszczycki Sep 24 '14 at 22:59
  • 1
    The visual glitches are due to problems with eshell's rendering, not related to the TERM variable (if anything, setting TERM to be something different would make these kind of problems worse since programs will output more control sequences that eshell can't handle). Unfortunately, I think the answer is "live with it or try to fix eshell". – shosti Sep 24 '14 at 23:18
  • 1
    From the video it seems to me, Emacs's (rather stupid) auto scroll feature is making the buffer dance. I guess you should try setting auto-window-scroll to nil and scroll-conversely to large number (>100) – kindahero Sep 25 '14 at 14:12
  • 2
    @kindahero that would be scroll-conservatively – Sigma Sep 25 '14 at 16:40
3

As @shosti pointed out, eshell simply doesn't support any fancy escape sequences.

However my problems with brew can be fixed by resetting fringe-mode and disabling truncate-lines in eshell buffer.

This ensures characters don't wrap to the next line and that long lines (such as the progress bar) don't get covered by the truncation glyph.

I've tried @kindahero suggestions about the scroll, but to no avail.

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.