作为设置桌面的启动脚本的一部分,我初始化了一个带有多个窗口的屏幕。我通过启动一个守护进程并发送它-X screen和-X stuff命令来做到这一点,最后重新附加-r.
不幸的是,“创建守护进程并重新连接”方法使我创建的所有窗口都将退格键变成了“杀死整行”操作。如果我在 screen 中创建新窗口C-c c,则新窗口没有这种行为。这是一个屏幕错误,还是我可以做一些特别的事情来解决这个问题?如果重要的话,我正在使用 xfce4 和 ubuntu 12.10
使用以下内容进行重现:
screen -S -dm
screen -r
键入几个字符并按退格键。
小智 0
我找到了解决此问题的方法。
screen -r {session_name} -p 0 -X stuff "stty $(stty -g)"
screen -r {session_name} -p 0 -X stuff $'\n'
screen -r {session_name} -p 0 -X width $COLUMNS $LINES
screen -r {session_name} -p 0 -X stuff $'clear\n'
这将获取当前的 tty 设置并将它们“填充”到 Window 0 上的 screen 会话中,Window 0 是 screen 在首次启动时创建的默认窗口。然后它“填充”一个换行符来模拟按 Enter 键。
接下来的两行只是告诉屏幕初始列和行应该与调用终端的列和行匹配,然后它会清除会话的屏幕,以便当您附加到屏幕会话时,您的提示将位于左上角。我遇到的问题是,当附加到屏幕会话时,提示符会出现在终端的中间。有点烦恼,但我希望它消失。
注意:如果您从脚本中调用最后两行,则不会设置这些环境变量。您需要替换为$(tput cols)和$(tput rows)
| 归档时间: | 
 | 
| 查看次数: | 981 次 | 
| 最近记录: |