当前位置: 首页 > 面试题库 >

屏幕:如何打开备用屏幕?

曹育
2023-03-14
问题内容

在终端中工作时,我看到了最后一个Shell命令执行输出的历史记录。如果运行vim,我会看到全屏打开的文件。退出vim时,我可以再次看到最后一个shell命令的历史记录。

但是,当我从屏幕上使用vim时。我在退出vim时看到的是刚刚编辑的文件的足迹,而不是最后一个shell命令的历史记录。 我想看看外壳的历史。

我该如何实现这种行为?

我用了:

  • terminal.app和iterm2.app
  • 尝试将xterm切换到xterm-256color(在iterm2.app中)
  • 选中和取消选中“在存在应用程序状态栏时将行保存到回滚”和“在备用屏幕模式下将行保存到回滚”(在iterm2中)
  • 在.screenrc中添加termcapinfo xterm ti @:te @(尽管它应该是相反问题的解决方案,但为什么不尝试)
  • sshing到Linux机器并尝试在其中使用gnu-screen

到目前为止,我还没有得到想要的行为。


问题答案:

更新: 我已经忘记screen了默认情况下禁用备用屏幕支持的功能

添加altscreen on到您$HOME/.screenrc的启用它。这可能就是您要做的全部;所有关于与餐间$TERM$TERMCAP以及$TERMINFO可能是不必要的。无论如何,我将在此处保留其余答案。

我已经拥有了.screenrc这么久,以至于让我无所适从。

要在当前会话中启用此功能,请键入您的screen转义字符(Cntrl-A默认情况下),然后输入:altscreen on Enter

没有这个,screen即使在terminfo或termcap中定义了转义序列,也不会响应。

vim(和less,以及大多数其他基于curses的全屏程序)使用terminfo条目为您的终端定义的smcuprmcup字符串。(在较旧的termcap系统中,它们分别称为tite)。
smcup切换到备用屏幕,然后rmcup切换回主屏幕。

如果您的terminfo条目没有这些字符串,则程序将无法执行这些操作。

屏幕命令默认情况下将设置$TERM"screen"。显然,“屏幕” terminfo条目没有smcuprmcup

如果您想入侵terminfo条目,则可以修改现有信息,以便在“屏幕”中添加smcuprmcup。您将需要infocmp命令将terminfo转换为文本,并将tic其转换回terminfo使用的二进制形式。

一个更简单的解决方案是将$TERM环境变量设置为调用screen命令之前的环境变量。如今,几乎所有终端仿真器都基于旧的DEC
VT100,因此它们应具有足够的兼容性。

在我的系统上,例如,当我登录时,我拥有TERM=xterm; MacOS上可能还有其他内容。在一个screen会话中,默认情况下,我将具有:

 $ echo $TERM
 screen

我可以将其更改为xterm这样:

$ export TERM=xterm

(再次,用$TERM系统上的任何内容替换“ xterm” 。)

您也可以添加

term xterm

给你$HOME/.screenrc。实际上,screen有许多选项可用于调整termcap / terminfo设置。man screen并搜索“ terminfo”以获取详细信息。



 类似资料:
  • 如何强制屏幕在我的应用程序运行时保持活动状态而不是关闭?

  • 在Twitter应用程序中,当你点击一条推文时,屏幕会向左滑动,就像页面在滑动一样。我想这是动画部分。我想在我的应用程序中找到它,但在上面找不到任何东西。在我的应用程序中,有许多片段可以多次添加/删除。每个片段上都有按钮,当我点击一个按钮时,新的片段就会出现。我希望他们像推特上的页面一样滑动。我知道ViewPager类,但这是不同的。请帮帮我。谢谢

  • 我一直在努力研究如何在我正在开发的应用程序中保持屏幕打开。网上有很多关于这方面的信息,但我还没有找到任何具体的颤动。我发现了各种关于使用唤醒锁的帖子,但当我尝试我的应用程序总是在启动时崩溃。不过,我宁愿不使用唤醒锁。 我找到的信息告诉我将以下内容放入MainActivity.java。 getWindow()。addFlags(WindowManager。layout params . FLAG

  • 我有两台显示器;创建 LWJGL 窗口时: 它总是出现在我的左侧屏幕上。是否有一个参数可以设置以更改它出现在哪个屏幕上,例如:

  • 问题内容: 我找到了几种解决方案,如何在Java中做到这一点,但没有找到如何在QML或Qt中做到这一点。我知道首先我应该在中设置许可。我应该怎么做才能在运行时从Qt打开和关闭屏幕锁定? 问题答案: 您可以使用Qt Android Extras模块并使用JNI从C ++调用相关的Java函数。就像是 :