反対の質問が多く寄せられているようです: ウィンドウを既存のウィンドウの新しいタブに移動する方法です。私が望んでいるのは、gvim で開いたタブを独自のウィンドウまたは別の既存のウィンドウに移動できることです。
これは可能ですか?
ありがとう!
そのタブにウィンドウが 1 つしか表示されていない場合は、そのバッファー番号をメモする必要があります(たとえば、 or を使用する:ls
か、 statusline:echo bufnr('')
に含めることにより)。次に、 (変更されたバッファーに役立ちます) を使用してタブを閉じ、ターゲット タブに移動します。 / ウィンドウを開き、またはを介してそこでバッファを再度開きます。:close
:set hidden
:buf N
:sbuf N
タブ ページで複数のウィンドウをサポートする必要がある場合は、最初にバッファーを記憶し、次に上記の手順をすべてのバッファーに適用するカスタム コマンド/マッピングを作成する必要があります。
編集: 上記は単一の Vim インスタンス内での移動用です。バッファーを別の GVIM インスタンスに移動する場合は、スワップ ファイルメッセージ:bdelete
を回避するために、まず現在の Vim で移動する必要があります。新しいインスタンスでの起動は簡単です:
:execute 'bdelete | !start gvim' shellescape(expand('%:p'), 1)
これにより、現在のファイルの (完全絶対) パスが新しい GVIM に渡されます。
ファイルを既存のGVIMに移動するには (ファイルの を知る必要がありv:servername
ます)、リモート クライアント サーバー通信 ( :help remote.txt
)を使用する必要があります。:drop
remote_send()
:execute 'bdelete | call remote_send("GVIM1", ":drop " . ' . string(fnameescape(expand('%:p'))) . '. "\<CR>")'
現在のバッファを 2 番目の GVim インスタンスに「移動」する方法は次のとおりです。
:!gvim --remote %
:bw
Vimはオプション付きでビルドする必要があることに注意してください。+clientserver
いいえ、できません。
新規または既存に関係なく、vim タブをウィンドウに移動することはできません。vim のタブ ページはウィンドウの集まりだからです。ウィンドウのコレクションを 1 つのウィンドウに移動することはできません。