3

反対の質問が多く寄せられているようです: ウィンドウを既存のウィンドウの新しいタブに移動する方法です。私が望んでいるのは、gvim で開いたタブを独自のウィンドウまたはの既存のウィンドウに移動できることです。

これは可能ですか?

ありがとう!

4

3 に答える 3

8

同じ Vim インスタンス

そのタブにウィンドウが 1 つしか表示されていない場合は、そのバッファー番号をメモする必要があります(たとえば、 or を使用する:lsか、 statusline:echo bufnr('')に含めることにより)。次に、 (変更されたバッファーに役立ちます) を使用してタブを閉じ、ターゲット タブに移動します。 / ウィンドウを開き、またはを介し​​てそこでバッファを再度開きます。:close:set hidden:buf N:sbuf N

タブ ページで複数のウィンドウをサポートする必要がある場合は、最初にバッファーを記憶し、次に上記の手順をすべてのバッファーに適用するカスタム コマンド/マッピングを作成する必要があります。

異なる Vim インスタンス

編集: 上記は単一の Vim インスタンス内での移動用です。バッファーを別の GVIM インスタンスに移動する場合は、スワップ ファイルメッセージ:bdeleteを回避するために、まず現在の Vim で移動する必要があります。新しいインスタンスでの起動は簡単です:

:execute 'bdelete | !start gvim' shellescape(expand('%:p'), 1)

これにより、現在のファイルの (完全絶対) パスが新しい GVIM に渡されます。

ファイルを既存のGVIMに移動するには (ファイルの を知る必要がありv:servernameます)、リモート クライアント サーバー通信 ( :help remote.txt)を使用する必要があります。:dropremote_send()

:execute 'bdelete | call remote_send("GVIM1", ":drop " . ' . string(fnameescape(expand('%:p'))) . '. "\<CR>")'
于 2013-10-24T06:47:50.500 に答える
2

現在のバッファを 2 番目の GVim インスタンスに「移動」する方法は次のとおりです。

:!gvim --remote %
:bw

Vimはオプション付きでビルドする必要があることに注意してください。+clientserver

于 2013-10-24T20:23:30.873 に答える
1

いいえ、できません。

新規または既存に関係なく、vim タブをウィンドウに移動することはできません。vim のタブ ページはウィンドウの集まりだからです。ウィンドウのコレクションを 1 つのウィンドウに移動することはできません。

于 2013-10-23T23:52:35.290 に答える