Previously, if I ran something | less, and then press q, it used to return me to the prompt with the output of less still visible.

$ seq 1 100 | less
$ <prompt here. I can still see the output of less>

But now, after I installed Zsh (with oh-my-zsh. It doesn't work in bash too), the terminal looks like this:

$ seq 1 100 | less
<less shows up, I press :q and it is cleared>
$ <prompt here. Output of less disappears.>

I searched for a less config file and found none. Is there any way I can get less to behave the previous way? Having the output visible is very handy.

2 Answers 2

seq 1 100 | less -X

see: man less

-X or --no-init
Disables  sending  the  termcap  initialization and deinitialization strings to the terminal. 
This is sometimes desirable if the deinitialization string does something  unnecessary, like clearing the screen.
  • Thanks, that was it! I added it to ~/.lesskey and it runs with all the git etc. Mar 5, 2014 at 17:42

As jhscheer mentioned everything is in the man page for less

Add this to your zsh profile .zshrc to make it play nice with git :)

LESS="-XRF"; export LESS


Actually in your case it's probably better to run the following command to avoid modifying the global behaviour of less:

git config --global core.pager 'less -XRF'

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.