相对经常,我发现自己想退出,less但留下我在屏幕上看到的内容,以供参考。有没有办法做到这一点?解决方法?
(我目前的解决方法是退出,然后使用more。所以任何比这更好的解决方法都是受欢迎的。理想的是我已经在里面后可以使用的东西less,也许有一个 shell 设置或一些脚本。)
我的桌面是 OSX,但我使用 RHEL 和 Ubuntu 服务器。
Geo*_*e M 90
这实际上是您使用的终端仿真器的功能(xterm、gnome-terminal、konsole、screen)。当诸如less或 之vim类的程序被调用时,会启动备用屏幕或 altscreen 。这个 altscreen 没有历史缓冲区,当你退出程序时会立即退出,切换回原始屏幕,恢复以前的窗口内容历史和位置。
您可以less通过传递参数“-X”来防止在 altscreen 中启动。
less -X /path/to/some/file
您还可以将“-X”作为环境变量传递。因此,如果您正在使用bash,请将其放在~/.bashrc:
export LESS="-X"
Run Code Online (Sandbox Code Playgroud)
但是,这会禁用 termcap(终端功能)初始化和取消初始化,因此您使用的其他视图less可能会显示为关闭。
另一种选择是使用screen和设置选项altscreen off在你的~/.screenrc。less不会清除屏幕并应保留颜色格式。大概tmux会有同样的选择。
此博客条目描述了该问题并提供了一些特定于gnome-terminal不同成功率的不同解决方案。
Bru*_*sky 16
我记得这是less -SEX在我需要将输出转储到屏幕但不希望换行时使用的方式。例如docker ps | less -SEX,它的作用是这样的:
-S
-E,您可以使用箭头键滚动-E
-X
如果你记不住less -SEX,那你就没有多大希望了。每次我猜都重新谷歌。
小智 6
乔治的解决方案对我不起作用,但这个解决方案确实有效(来自他回答中链接的博客条目)。
$ infocmp -I xterm > ~/xterm-noclear.src
编辑 ~/xterm-noclear.src
将第二行的名称从“xterm”更改为“xterm-noclear”,或者任何适合您的名称(如果存在,也更改“xterm-debian”)
删除指令“smcup”和“rmcup”(例如“smcup=\E[?1049h,”和“rmcup=\E[?1049l,”)
$ mkdir ~/.terminfo
$ tic ~/xterm-noclear.src (x/xterm-noclear 应该出现在你的 ~/.terminfo 目录中)
$ export TERM=xterm-noclear (现在检查 less 的行为,如果满意,将 export 指令行添加到您的 ~/.profile)
(我直接从@jah 拒绝编辑乔治的答案中复制了这些说明。)
| 归档时间: |
|
| 查看次数: |
15516 次 |
| 最近记录: |