使用Vim在GNU屏幕上工作时,我无法使用鼠标调整分割窗口大小.其余全鼠标操作在Vim的正常工作(滚动,用鼠标选择文本等).我一般都se mouse=n在我.vimrc.调整GNU屏幕外的窗口缓冲区大小非常好.
这是vim信息:
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jan 19 2012 18:05:29)
Included patches: 1-401
Compiled by root@arun-mu
Normal version without GUI. Features included (+) or not (-):
-arabic +autocmd -balloon_eval -browse +builtin_terms +byte_offset +cindent +clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments -conceal +cryptv +cscope +cursorbind
+cursorshape +dialog_con +diff +digraphs -dnd -ebcdic -emacs_tags +eval +ex_extra +extra_search -farsi +file_in_path +find_in_path +float +folding -footer +fork() +gettext -hangul_input -iconv
+insert_expand +jumplist -keymap -langmap +libcall +linebreak +lispindent …Run Code Online (Sandbox Code Playgroud) 我在一个screen会话中有几个窗口,然后我想分离我的会话.这没有问题.
但我无法找到一种方法来恢复我之前分离的会话中的所有窗口.我可以看到我可以通过ID恢复其中一个.
但是,如何在其中的所有窗口中重新连接相同的会话环境?
-
Updated:
如果我键入screen -d -r,这就是说:
There are several suitable screens on:
21074.pts-7.atx (05/29/2010 02:26:32 PM) (Attached)
3420.pts-3.atx (05/29/2010 12:16:41 AM) (Detached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.
Run Code Online (Sandbox Code Playgroud)
我怎样才能重新连接所有这些?
我有一个python脚本,它使用多处理和子进程与不同的参数并行启动多个外部命令.代码可以在这里找到.
为方便起见,我在GNU Screen会话中启动此脚本.运行此脚本的计算机有12个处理器,这些处理器在进程变为活动状态之前处于空闲
每个过程需要几个小时到几天才能运行,因此我经常断开与机器的连接并分离屏幕会话.
然而,最近我注意到了一种我以前从未体验过的行为.有几次我回到机器上,发现零负载是空闲的.如果我通过ps ux或获得活动进程列表,或者top我仍然可以在进程列表中找到脚本(和子进程).然后我重新连接屏幕会话以检查程序的状态,并立即将新的一批进程发送到队列,并且系统的负载在几秒钟内返回到12.请注意,除了重新连接屏幕会话之外,我对脚本完全没有任何作用.
我在系统上安装了一个监控工具,结果是一些流程在一段时间后完成并且没有启动新流程.因此系统处于活动状态,直到子进程忙,并且一旦没有更多的作业从队列中释放就变为空闲.
所以我的问题是,有没有人知道解释这种行为的任何原因?
编辑:大约一年后,这个问题不再可重现,无论是屏幕上的一些补丁还是python本身.我接受了答案,因为它为测试提供了良好的指导.
python subprocess gnu-screen multiprocessing idle-processing
有没有办法从我的.screenrc向GNU Screen窗口发送一系列命令?看起来这应该很容易做到:
.screenrc:
startup_message off
screen -t "RAILS SERVER"
<send command to last created window> <my alias to cd Rails project>
<send command to last created window> rails s
screen -t "RAILS CONSOLE"
<send command to last created window> <my alias to cd to Rails project>
rails c
Run Code Online (Sandbox Code Playgroud)
我已多次浏览屏幕手册,但找不到任何可能的内容<send command to last created window>.
谢谢,马克斯
我在我的GNU Emacs 24.2.1中使用elscreen目前,当我拆分窗口时,我在每一半都有一个相同的选项卡面板: elscreen http://i.zlowiki.ru/121101_0f30ebba.png/800 请注意这两个下部窗口与最大窗口具有相同的选项卡.
如何删除这两个副本,并只保留最重复的一个?
如果它太难了,GNU屏幕可以使用另一种替代方案吗?
我正在尝试编写一个.screenrc文件,我可以用它来设置特定项目的开发 - 它将启动几个屏幕,cd到正确的位置,在编辑器中打开正确的文件,并设置一些测试所需的环境变量.
我无法让环境设置工作..我已经尝试过这个`~/.screenrc:
setenv PATH ~/src/my_proj/bin/:$PATH
Run Code Online (Sandbox Code Playgroud)
这不起作用,我认为问题是在screen设置之后PATH,常规shell初始化脚本会启动并在我身上进行更改.
我不想禁用常规shell init脚本.shell初始化setenv 后有没有办法制作屏幕?或者,可以屏幕将变量设置为只读吗?
我正在使用屏幕将我正在使用Vim查看的代码从一个窗口复制到另一个窗口,当前正在使用Vim编辑文件.不幸的是,当粘贴到第二个窗口时,每个换行后我的输入左边的空白区域越来越多.这个空白如何进入我的缓冲区?
我试图在Vim添加额外的空格时关闭自动缩进,但问题仍然存在.
以下是可能相关的信息:
我能够在shell提示符中显示git分支名称.但每当我使用屏幕时,我都会得到
bash: parse_git_branch: command not found
Run Code Online (Sandbox Code Playgroud)
和git分支没有显示.请帮我在屏幕会议中得到这个.
我在.bash_profile中有以下内容.
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/
}
export PS1="[\W\$(parse_git_branch)]$ "
Run Code Online (Sandbox Code Playgroud)
我没有 .git-completion.bash
系统规格:
我是新用的GNU screen,我使用它主要是因为我不想丢失我的工作,如果我的SSH连接意外关闭,还因为我想保留我的终端上打印的每个输出的日志文件(至少一些最近的曲目)
对于SSH的东西,我想Ctrl+ a d分离和/ screen -r或screen -r session_name重新连接到一些会话解决我的所有问题,现在我正在尝试了解日志记录.
我发现screenlog并hardcopy在此链接上,基本上说:
hardcopy Ctrl + a h将当前显示内容写入
hardcopy.n窗口默认目录中的文件,其中n是当前窗口的编号.如果该文件存在,则会附加或覆盖该文件(由hardcopy_append命令确定).log Ctrl + a H开始/结束当前窗口的记录到
screenlog.n窗口默认目录中的文件,其中n是当前窗口的编号.如果未给出参数,则切换日志记录状态.会话日志将附加到文件的先前内容(如果已存在).回滚历史记录的当前内容和内容不包括在会话日志中.默认是off.
因此,据我所知并尝试使用它们,启用后screenlog,它会记录我写的所有内容以及该文件中的终端的所有输出(这恰好$HOME适用于我),包括那些改变颜色的字符\033[1;31mm.如果我这样做cat screenlog.0,它会崩溃,有时无限期地打印文件,但好吧,我可以用编辑器或其他会话打开它...
至于hardcopy,显然它没有跟踪命令,也没有输出的颜色,我不知道它是否只需要终端中可见的那几行或该会话中发生的一切,有人可以向我澄清这一点吗?
最后,我开screen的Terminator,而不是传统的终端,即使我打开不同screen的不同的Windows会话Terminator,所有日志去screenlog.0或hardcopy.0.在这种情况下screenlog,它是否会与在其他会话上输出或覆盖它的另一个进程冲突?如何创建不同的screenlog.n文件并将它们放在除以外的目录中$HOME? …
gnu-screen ×10
bash ×2
vim ×2
elisp ×1
emacs ×1
git ×1
logging ×1
python ×1
subprocess ×1
terminal ×1
unix ×1
whitespace ×1