我想要完成的是我在常规 ssh 会话中习惯的鼠标滚轮滚动行为。在 bash 提示中,鼠标滚轮应该滚动我的终端输出,并在 less/vim 内滚动 - 他们使用的备用缓冲区,因此在退出时,less 内显示的文本没有任何剩余。如果我在 .screenrc 中禁用备用缓冲区功能,如下所示:
termcapinfo xterm ti@:te@
Run Code Online (Sandbox Code Playgroud)
然后它也被 vim/less 禁用,鼠标滚轮滚动不会被他们处理。启用屏幕的内部备用缓冲区模拟,如下所示:
altscreen on
Run Code Online (Sandbox Code Playgroud)
仅有助于在 less/vim 退出后恢复 bash 输出。不是在鼠标滚轮里面滚动。
那么,是否有任何屏幕选项,也许在某些屏幕分叉/替代方案中可以禁止屏幕本身使用备用缓冲区?
screen与 Linux(至少是 Ubuntu、Red Hat 和 Gentoo)和 OS X 10.4 (Tiger) 相比,GNU Screen ( ) 在 OS X 10.5 (Leopard) 和 10.6 (Snow Leopard) 上的行为不同。在 10.5 和 10.6 中,新屏幕(用screen或 制作^A c)总是将我放在我的主目录中~。在 Linux 和 OS X Tiger 中,新屏幕pwd在屏幕最初创建的地方都有一个。
编造了一些例子来说明我的意思:
老虎:
$ cd ~/foo
$ pwd
/Users/ben/foo
$ screen
$ pwd
/Users/ben/foo
$ screen # or ^A c
$ pwd
/Users/ben/foo
Run Code Online (Sandbox Code Playgroud)
豹、雪豹:
$ cd ~/foo
$ pwd
/Users/ben/foo
$ screen
$ pwd
/Users/ben
$ …Run Code Online (Sandbox Code Playgroud) 我每天都使用 screen 来满足我的终端需求,我对此非常满意。不过,最近我做了一些更新我的bash配置文件和我注意到,我设置各种PATH元素(PATH,MANPATH,INFOPATH在2个地方,等)。我将文件修改为它们应该的样子,现在我的所有环境变量都在.bash_profile. 这就是我的问题。
显然,我将它们设置在两个地方的原因是因为屏幕。screen 似乎只执行.bashrc并且似乎没有PATH从我的原始 bash shell 正确继承我的或任何其他环境变量。因为它只执行.bashrc并且我现在只设置我的变量.bash_profile,所以我得到一个不完整的PATH.
那么,我的问题是如何在不重复的情况下将我的环境变量放入屏幕。通读Bash文档似乎表明它可能是screen 用于登录的那种 shell,即非登录交互式 shell,但我无法弄清楚如何强制 screen 使用特定类型的 shell,只有shell 使用通过-s /bin/bash.
你可以在我的 GitHub 页面仔细阅读我的配置文件。 这是破坏 screen 的提交提交。
编辑:我正在使用Screen version 4.00.03 (FAU) 23-Oct-06并且我倾向于通过screen -h 50000
编辑:我现在已经能够在 Cygwin ( CYGWIN_NT-5.1 1.7.1(0.218/5/3) i686, Screen version 4.00.03 (FAU) 23-Oct-06)上测试它,它表现出与我的 Mac …
我一直在尝试向 opensolaris 中正在运行的 gnu 屏幕会话 (4.00.03) 发送命令,但无法通过以下任意组合运行任何命令 screen -X
好的,我用 开始屏幕会话screen -S test,然后尝试用screen -r -X "date"仅显示日期,当我重新连接到它时。但是屏幕上既没有错误消息也没有输出。我尝试了很多组合,我什至不记得了。
关于如何完成它的任何提示?
我这样做的原因是,因为我有一个程序,它不是作为守护程序出现的,我希望在屏幕会话中启动它,以便稍后我可以看到发生了什么。
有没有办法在不同的屏幕会话之间移动窗口?
例如,假设我有这个场景:
screen -S screen1
vim *.cpp
C-a d
screen -S screen2
Run Code Online (Sandbox Code Playgroud)
有什么办法可以将包含我的 vim 会话的 shell 从 screen1 移动到 screen2 吗?
我使用 GNU Screen 的回滚/复制模式。所以我点击 Control-A [ 进入复制模式,向上滚动到我关心的部分......然后我忘记了。
但是,似乎让 GNU 屏幕处于回滚/复制模式会阻止执行(当时运行的任何应用程序)。例如,如果我在回滚/复制模式下启动本地 Web 服务器,则对该 Web 服务器的请求将超时:该进程不会响应,直到我退出复制/回滚模式。
我已经在 Ruby On Rails 脚本/服务器和 Python 工具 Paste 中看到了这一点。
我已经考虑为我的窗口打开日志模式,然后只是拖尾/搜索这些日志文件作为替代,但如果这可以通过另一种方式控制(设置,以不同的方式激活复制模式),我非常感兴趣。
我的屏幕版本说:
屏幕版本 4.00.03 (FAU) 2006 年 10 月 23 日
(我在 quora.com 上问过这个问题,但也许这是一个更好的地方)
我有以下脚本
screen -d -m -S $1 #start screen minimized
screen -S $1 -X stuff "$beast
" #stuff commands
Run Code Online (Sandbox Code Playgroud)
除非我先附上屏幕,否则似乎东西的影响不会做任何事情?为什么会这样,我该如何修改这个脚本,这样我就不需要附加屏幕了?
每当我重新连接到分离的屏幕(包含 Irssi)时,我的 Putty 屏幕都会调整为启动时的大小。如果我在此之后更改窗口大小,分离屏幕并将其重新调整大小,窗口将再次调整为原始大小。我所说的窗口是指我的 windows 框上的 Putty 窗口。如何关闭此功能?
使用 Windows XP 作为我的本地操作系统和 CentOS 6.0 作为远程操作系统。腻子 0.61。
我使用腻子通过 ssh 连接到 ubuntu bash shell,它在屏幕会话中保存 irssi。
我想我可能可以将 irssi 配置为在某些消息显示或活动发生时发送系统响铃,并且我已经设法将 putty 配置为在收到响铃字符时在任务栏中闪烁。
我的问题是屏幕。当铃声从当前活动窗口发送时,除了闪烁终端窗口之外,我似乎无法让屏幕做任何事情。有了vbell on它,腻子窗口就会闪烁echo ^G。有了vbell off它也闪烁腻子窗口。当不在屏幕中时,铃声会正确传播并根据我的腻子设置执行。(vbell on/off和按下是一样的ctrl+a ctrl+g)
问题的核心似乎是无论设置如何,屏幕都使用可视铃。也许terminfobash 和 screen 之间存在某种不兼容?
当它配置为发送可听铃声时,如何让屏幕发送可听铃声?
在GNU屏幕中,使用水平/垂直分割,如何设置分割之间分隔线的颜色和宽度?我想让它们变薄变暗,这样它们就不会那么突出。
有一张我的意思的图片:

我想一个是分隔符,另一个是状态栏。我希望两者都采用更中性的语气。
我正在使用GNU Screen的开发版本,配置为--enable-colors256. 这具有内置的垂直拆分以及 Vim 的理智行为,当:defbce= 'on'.
gnu-screen ×10
bash ×4
linux ×2
macos ×2
putty ×2
session ×2
terminal ×2
command-line ×1
irssi ×1
opensolaris ×1
script ×1
shell ×1
vim ×1
window ×1
xterm ×1