重新启动后如何保持“ gnu screen”布局


13

我使用的是screenVim在左侧的3分割,另外两个屏幕在右侧的水平分割。我知道从屏幕上拆下时,可以使用保存布局:layout save my_layout_name

我已经layout autosave on.screenrc文件中,但这对我的问题没有帮助。

如何在不同的终端会话之间以及重新启动PC后保持屏幕的布局?或者作为一种解决方法,是否有一种方法可以运行屏幕(参数)来分割屏幕,在每个窗口上设置bash并保存布局?

Answers:


13

新屏幕的默认布局

管理您的区域,然后在屏幕内执行代码:

  • 要将当前布局保存到文件.screen_layout

    rm -f $ HOME / .screen_layout
    屏幕-X布局转储.screen_layout
    
  • 要使其自动加载并保存布局:

    回声源.screen_layout >> $ HOME / .screenrc
    回声布局保存def >> $ HOME / .screenrc
    

这个怎么运作

  1. 您键入screen
  2. 屏幕显示$HOME/.screenrc
  3. source .screen_layout- 现在创建的区域中读取并执行命令。 $HOME/.screen_layout
  4. layout save def- 当前区域保存为布局以在分离时保留它。

layout dump .screen_layout

  • 当前布局转储(追加)到目录中的$HOME文件

screen -X command

  • command当前屏幕会话中运行(如果在内部执行)。
    类似于ctrla那时: command

您也可能

  • 启动时禁用版权声明

    回显startup_message关闭>> $ HOME / .screenrc
  • 增加滚动缓冲区(默认100)

    回声defscrollback 1000 >> $ HOME / .screenrc
  • 自己写.screen_layout(50%/ 50%垂直,带有2个壳):

    分割-v
    屏幕-t s1
    
    焦点
    屏幕-t s2
    
    焦点
    

你是对的。此方法通过将命令转储到文件中,然后在中重复命令来保持屏幕布局.screenrc.screen_layout可以使用每次运行时要运行的所有命令来编辑该文件screen,包括layout save default最后运行。我建议其他读者在文件中添加screen之后以使bash运行。focus.screen_layout
randunel

7

Ctrl- a然后:layout save default 提供了一个屏幕是较新的版本(与布局功能)祝你好运。

更新:.screenrc文件,它将使更改永久生效,并添加了其他不错的功能。


知道为什么layout autosave on.screenrc没用吗?这对我来说会更好。
自旋锁

您是对的,它不起作用。但是我从这里测试了.screenrc:gist.github.com/joaopizani/2718397并且它起作用了。
Mir Dunaev 2015年

2

layout autosave on ”仅适用于.screenrc中显式命名的布局。

即,如果您将某些布局指定为ABC,在Screen会话中切换到该布局并分离,则恢复会话后将恢复该最后的布局。

如果未在配置文件中指定任何布局,则在分离之前必须运行内部命令“ layout save your_layout_name ”。

这是一个.screenrc,具有预定义的布局供您选择:

 0 — one (the only region)
 1 — two-v (the screen is splitted vertically into two regions, default layout)
 2 — two-h (the screen is splitted horizontally into two regions)
 3 — three (three regions — two in the upper part of the screen and one underneath)
 4 — four (four regions)

预定义的布局

一旦从“屏幕”中选择了这些布局,这些布局将在分离时保留,直到会话的下一次恢复(由于“ layout autosave on”命令)。

如果您构建了自己的布局,则必须使用“ layout dump filename ”命令来保存它。然后,您可以使用“文件名”文件中的代码将布局添加到此.screenrc的#layouts部分中以进行选择。

默认情况下,“ two-v ”布局会加载带有bash的唯一窗口。


很好,尽管我错过了如何从一种布局切换到另一种布局,然后看到删除了键绑定的注释。仅供参考-此键绑定对我有用(Ubuntu 16.04)以切换布局: bind ' ' layout next # <- actually means Ctrl-a + Space
Bachi

0

根据此消息来源,由于screen工作方式,这是不可能的。但是,那里提供了一个hack。它基本上可以归结为另一个屏幕内部的嵌套屏幕,这可能不太方便。(在这里找到答案)

如果您在本地计算机上使用屏幕进行终端拆分(我从提到的pc重新启动推断出),则可能需要签出名为的终端仿真器terminator。它支持水平和垂直端子拆分(也可嵌套),您可以保存自己喜欢的布局以备将来使用。然后,您只需使用合适的选项运行终止符即可terminator -l <name of saved layout>


我知道在另一个屏幕中嵌套一个屏幕,但是所有屏幕在重启时都会终止。layout添加时已解决了屏幕内的屏幕问题,因此您的答案不仅是问题,而且已过时。我对此表示赞赏terminator
randunel 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.