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 实用程序并不熟悉,我认为有一种方法可以做到这一点,我认为这可以保留工作流程程序员)