0

screen 插件将vim 变成了一种梦幻般的东西,只是它要好得多,因为即使您有多个缓冲区和这些缓冲区中的特定文本,您也可以更好地控制发送的内容。

要按照我的环境设置,只需使用 vim 安装屏幕,然后在命令行中,执行screen,到达 shell,然后输入 vim。用它编辑某种 shell 脚本,然后在:ScreenShell *shell type here, eg python/bash/irb*下面生成一个 shell。如果没有选择,您可以使用:ScreenShellSend将视觉选择的文本发送到 shell 或整个文件。

我的问题是,假设我想重新启动我正在使用这个插件运行的 shell 并向它发送一些文本。我需要做的是:ScreenShellFocus,调用exit,然后重新启动它。但随后我需要能够返回到我正在影响的 shell 正上方的同一个 vim 会话。我意识到我可以使用 screen 来进入 vim 会话,但我现在唯一能做到的方法是用 ^a 1 选择它,它实际上只替换了下部,应该是外壳的那个,正在编辑的 vim 缓冲区。这很愚蠢,因为现在您在 vim 缓冲区之上有 vim 缓冲区。

所以我的问题是,如何在完成 :ScreenShellFocus 之后将光标返回到上面的 vim 会话?

(是的,我知道我杀死和重新启动 shell 的示例可能会被其他逻辑规避,但我对 GNU screen 实用程序并不熟悉,我认为有一种方法可以做到这一点,我认为这可以保留工作流程程序员)

4

1 回答 1

0
<C-a><Tab>

是用于screen循环“区域”的映射。由于您只有两个,因此它将焦点转移到另一个区域。

由于您正在有效地使用screen,您应该学习如何使用它来使这个插件真正有用。

$ man screen
于 2013-01-13T12:36:46.193 回答