既存のウィンドウを新しいタブに移動するにはどうすればよいですか?


151

既存のウィンドウ(分割)を取得して新しいタブに配置する方法はありますか?


この質問に戻ってきた場合は、受け入れられた回答を変更してください。DrAIの回答は、Mykolaの回答よりもはるかに正確です。
gbr 2017

回答:


261

だけでなく、以前に示唆したようにしたよう:tabeditなアプローチは、それを行うための迅速な方法は、ヒットに(通常モードで)ですCtrl- - 。W Shift TCtrl-Wは、さまざまなウィンドウ操作コマンドの一般的なプレフィックスです。

見る:

:help Ctrl-W_T
:help Ctrl-W

3
ノートhelp Ctrl-W_Tのヘルプ項目に移動しますCtrl-W_t(小文字)、しかし、さらにページの下でCtrl-W_T(資本Tとの)エントリ、と言って、「新しいタブページに現在のウィンドウを移動します....」
Rabarberski

1
@DrAlおよび新しいタブウィンドウを分割ウィンドウに移動する方法
Ramiz Uddin

@RamizUddinこれを行う簡単な方法はありません(どのウィンドウに分割するかが明確でないため)。ただし、現在のタブページのバッファ番号を確認:echo bufnr("")できます。この番号を使用して、:sp #3またはでウィンドウを分割できます:sb 3(番号が3であると仮定)。これを簡単にするために、いくつかのマッピングまたは関数を考え出すことができる場合があります。
DrAl 2013

1
バッファーを元に戻す/やり直しの状態に保ちながら、バッファーを新しいタブに移動するにはどうすればよいですか?つまり、同じファイルを新しいタブで開きたくないのですが、文字通りバッファを新しいタブに移動して、編集履歴を新しいタブで使用できるようにしたいと考えています。これを行うデフォルトの方法がない場合は、元に戻す履歴を新しいバッファーのスワップファイルに書き込む、これを行うための新しいショートカットを追加するプラグインを作成できると思います。
trusktr 2013年

2
@trusktr新しいタブでバッファを開くとうまくいくと思い:sbますが、Vimの最近のバージョン(> = 7.3)ではset undodir=/path/to/dir、/ path / to / dirが設定したディレクトリを設定することで、永続的な取り消しを使用することもできます。目的のために作成され、その後 set undofile。これにより、vimを終了して再起動しても、元に戻す/やり直しの状態を維持できます。
DrAl

103

試す

:tabedit %<CR>

3
それに<CR>を含めた理由に興味があります。
スイス、

17
同じ理由で、「:」を含めました。これは通常モードでの完全なvimキーの組み合わせであり、これを「nnoremap」および「nmap」で使用できます
Mykola Golubyev '18

6
これは、最初にウィンドウを閉じてから新しいタブで開くのではなく、ウィンドウを新しいタブに複製/複製することを除いて、同様に機能します。大したことではない。注意すべきことだけです。
A-Dubb

6
これはバッファを新しいタブに移動せず、同じファイルを新しいタブで開くだけですが、元に戻す/やり直しの履歴などはありません
trusktr

5
C-w T同じことをするためのより速い方法です
Dylanthepiguy

3

これにより、最新のバッファが新しいタブに移動し、現在のタブの以前のバッファが復元されます。新しいファイルをGvimにドラッグした後、これを使用します

:sbp |wincmd p| wincmd T

そのようにCtrl-Backspaceにマッピングできます

:nnoremap <C-BS> :sbp<bar>wincmd p<bar>wincmd T<CR>

それは特にうまくいきます

:set switchbuf=usetab

0

私はこれを使用て、ホットキーまたはコマンドのペアにバインドできる2つの機能を提供し、非常に直感的に機能します。私はそれが例よりもさらに友好的な行動を提供すると確信していますCtrl-W_T

たとえば、複数のウィンドウが複数のタブで開いている場合、この関数を使用すると、現在のウィンドウを次または前のタブに明確に移動でき、最初のタブの前または最後のタブの後に何かを移動すると、ウィンドウが変わりますまったく新しいタブに。

つまり、2つのタブがあり、それぞれが単一のウィンドウを持っている場合、最初のタブのウィンドウを右に移動すると、2番目のタブと結合して、2つのウィンドウを持つ1つの単一のタブになります。この操作が従来のコマンドを使用してどのように複雑になるかはわかりません。

つまり、1組の移動コマンドを使用すると、ウィンドウをタブの周りに移動したり、ウィンドウをタブに分割したり(ウィンドウを最後まで押し出して)、個別のタブを単一のタブ内のウィンドウに結合したりできます。おそらく、位置の配置(これは別のトピックであり、組み込みのCtrl-W+ Shift-HJKLコマンドが適切に機能する)に不足しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.