如何阻止Linux less命令在多文件切换时清屏?
如何阻止Linux less命令在多文件切换时清屏?
这个问题我之前也碰到过!确实less -X只能搞定退出时不清屏,切换文件时的自动清屏确实挺破坏阅读连贯性的,尤其是你习惯了老more那种无缝滚动、只在新文件开头显示文件名的体验。
其实less本身没有直接对应选项来关闭切换文件时的清屏,但我们可以通过修改终端相关的环境变量来搞定,核心思路是禁止less使用终端的替代屏幕(这就是它切换时清屏的根源):
临时生效的用法
直接在执行less时临时设置两个环境变量,再加上你已经在用的-X选项:
LESS_TERMCAP_ti= LESS_TERMCAP_te= less -X file1 file2 file3
简单解释下:LESS_TERMCAP_ti和LESS_TERMCAP_te是less用来控制终端进入/退出替代屏幕的初始化字符串,把它们设为空,less就不会触发清屏操作了,切换文件时会像老more那样,直接在当前屏幕下方接着显示新文件内容,同时顶部会自动标注当前文件名。
永久生效的配置
如果不想每次都敲这么长的命令,可以把环境变量加到你的shell配置文件里(比如~/.bashrc或者~/.zshrc):
# 禁止less使用终端替代屏幕,避免切换文件清屏 export LESS_TERMCAP_ti= export LESS_TERMCAP_te= # 保留退出时不清屏的设置 export LESS="-X"
保存后执行source ~/.bashrc(对应你的配置文件),之后直接用less file1 file2 file3就能自动生效,既保留less的各种强大功能(比如搜索、快速翻页),又能获得类似老more的无清屏体验。
另外你提到的MOREISLESS环境变量,确实只能模拟more的部分行为,切换清屏这个问题它确实解决不了,上面的方法应该能完美匹配你的需求。
备注:内容来源于stack exchange,提问作者Terry Ligocki
相关产品推荐
相关产品推荐

