gpt4 book ai didi

ruby - 从 Ruby 调用 `less' 寻呼机会在终端留下垃圾——有什么解决办法吗?

转载 作者:太空宇宙 更新时间:2023-11-03 16:08:35 25 4
gpt4 key购买 nike

如果我通过 bash 在我的终端中执行 less somefile,当我退出寻呼机时文本不再存在 - 这真的很好。

但是,如果我从 ruby​​ 脚本中执行相同的操作,分页文本将保留在终端的文本缓冲区中:

exec 'less somefile'

我怎样才能得到相同的行为,文本不再在终端中留下垃圾?我不知道 less 是如何做到这一点的。

最佳答案

好吧,老实说,我的 LESS 环境变量不小心包含了 X,即 John Zwinck提到,防止 less 清除屏幕。

出于好奇,我确实看到了一篇文章,其中包含一些 interesting information regarding this behavior .显然,终端可以实现保存/恢复屏幕的能力。这通常被称为“备用屏幕”。要发出必要的终端代码,您可以使用 tput smcuptput rmcup。在可能想要恢复屏幕的 Ruby 中使用它是微不足道的:

def restore
system 'tput smcup'
yield
system 'tput rmcup'
end

# The screen will be restored at the end of the block:
restore do
100.times { puts "Look fast!" }
end

关于ruby - 从 Ruby 调用 `less' 寻呼机会在终端留下垃圾——有什么解决办法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8874830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com