Relatively often, I find myself wanting to quit less
but leave what I was viewing on the screen, to refer back to. Is there any way to do this? Workarounds?
(My current workaround is to quit, then use more
. So any workaround that's better than that is welcomed. The ideal would be something I can use once I'm already inside less
, perhaps with a shell setting or some scripting.)
My desktop is OSX, but I use RHEL and Ubuntu servers.
Best Answer
This is actually a function of the terminal emulator you are using (xterm, gnome-terminal, konsole, screen). An alternate screen, or altscreen, gets launched when programs such as
less
orvim
are invoked. This altscreen has no history buffer and exits immediately when you quit the program, switching back to the original screen which restores the previous window content history and placement.You can prevent
less
from launch in an altscreen by passing the argument "-X".less -X /path/to/some/file
You can also pass "-X" as an environment variable. So if you are using
bash
, place this in~/.bashrc
:However, this disbles the termcap (terminal capability) initialization and deinitialization, so other views when you use
less
may appear off.Another option would be to use
screen
and set the optionaltscreen off
in your~/.screenrc
.less
will not clear the screen and should preserve color formatting. Presumablytmux
will have the same option.This blog entry describes the problem and offers some different solutions specific to
gnome-terminal
with varying success.