I often end up in eshell.
Sometimes, because I’m running Emacs on Windows (where shells work, but it’s a pain), and sometimes just because. The problem, until today, was that anytime I would invoke a git command that wanted to call the pager (say, diff), I would see the following annoying message from less:
WARNING: terminal is not fully functional - (press RETURN)
This happens because eshell sets $TERM to “dumb”. It doesn’t try to fool anyone. It’s dumb.
But, since I’m stubborn and lazy, I just put up with it the stupidity of eshell and the annoyance of git’s invocation of less. Till today.
Some would say the answer is “Don’t use git in emacs — use magit!” And they’d be right. I do use magit, but commands should work, too.
So, after a spree of productivity yesterday, I woke up today and hit that annoying message again. I decided to track it down.
I came across this StackOverflow thread. There is a hint there — I didn’t know less could be told to only page in certain cases — but not anything that says “only sometimes use less”.
So I managed to hack something together:
git config --global core.pager '`test "$TERM" = "dumb" && echo cat || echo less`'
I haven’t tried this under Windows, yet, but I’m hoping it works.
Image CC-by-SA: Richard Bartz, Munich Makro Freak