screensプラグインは、vimを一種のドリームパイに変えますが、複数のバッファーとそれらのバッファー内に特定のテキストがある場合でも、送信する内容をより細かく制御できるため、はるかに優れています。
私の環境設定に従うには、vimを使用して画面をインストールし、コマンドラインで実行しscreen
てシェルに到達し、vimと入力します。それを使用して何らかのシェルスクリプトを編集し、実行すると:ScreenShell *shell type here, eg python/bash/irb*
、下にシェルが生成されます。:ScreenShellSend
視覚的に選択されたテキストをシェルに送信するか、何も選択されていない場合はファイル全体に送信するために使用できます。
私の問題は、このプラグインを使用して実行しているシェルを再起動し、テキストを送信したいとします。:ScreenShellFocus
実行し、exitを呼び出してから、再起動する必要があります。しかし、影響を受けているシェルの真上にある同じvimセッションに戻ることができる必要があります。screenを使ってvimセッションにたどり着くことができると思いますが、今それを行う唯一の方法は、^ a 1で選択することです。これは、実際には、シェルであるはずの下部を次のように置き換えるだけです。編集中のvimバッファ。これはばかげています。vimバッファの上にvimバッファがあるからです。
だから私の質問は、:ScreenShellFocusを実行した後、カーソルを上記のvimセッションに戻すにはどうすればよいですか?
(はい、シェルを強制終了して再起動する例は他のロジックによって回避される可能性があることは知っていますが、GNU screen utilに精通しているわけではなく、このようにする方法があると思います。これにより、ワークフローが維持されると思います。プログラマーの)