【发布时间】:2016-11-12 18:49:16
【问题描述】:
因此,当我通过 ssh 连接到远程服务器时,我会使用“screen -R myscreen”来防止任何正在运行的脚本/进程在 ssh 连接断开时被中断,无论出于何种原因(wifi 信号不佳等)。
但是,在启动屏幕时,iTerm2 的 shell 集成不再起作用。
有什么解决方法吗?
【问题讨论】:
因此,当我通过 ssh 连接到远程服务器时,我会使用“screen -R myscreen”来防止任何正在运行的脚本/进程在 ssh 连接断开时被中断,无论出于何种原因(wifi 信号不佳等)。
但是,在启动屏幕时,iTerm2 的 shell 集成不再起作用。
有什么解决方法吗?
【问题讨论】:
我找到的解决方案是:
使用 'tmux' 而不是 'screen',通过执行 tmux -CC 打开一个 tmux 会话(并使用 tmux -CC attach 在断开连接后重新连接。)
这也被描述为here。
要使 iTerm2 shell 集成在 tmux 中工作,修改 ~/.iterm2_shell_integration.bash 并删除第一行的这部分:
"$TERM" != screen
所以这个
if [[ "$TERM" != screen && "$ITERM_SHELL_INTEGRATION_INSTALLED" = "" && "$-" == *i* ]]; then
变成:
if [[ "$ITERM_SHELL_INTEGRATION_INSTALLED" = "" && "$-" == *i* ]]; then
【讨论】:
tmux -CC(而不是tmux)发起的会话更像screen,而不是tmux我发现拆分面板很难做到......
"$ITERM_ENABLE_SHELL_INTEGRATION_WITH_TMUX""$TERM" != screen。所以你现在可以在.profile 中的source ~/.iterm2_shell_integration.bash 之前设置ITERM_ENABLE_SHELL_INTEGRATION_WITH_TMUX=yes。
screen 用户有什么新的解决方案吗?谢谢
您可以使用触发器来复制 shell 集成的几乎所有功能。请参阅本文档底部附近的触发器部分:https://www.iterm2.com/documentation-shell-integration.html
【讨论】: