Mevcut bir pencereyi yeni bir sekmeye nasıl taşırım?


151

Mevcut bir pencereyi alıp yeni bir sekmeye koymanın bir yolu var mı?


Bu soruya geri dönerseniz lütfen kabul edilen cevabı değiştirin, DrAI'nin cevabı Mykola'dan çok daha doğrudur.
gbr

Yanıtlar:


261

Daha önce önerilen :tabedityaklaşımın yanı sıra, bunu yapmanın daha hızlı bir yolu (normal modda) Ctrl- W Shift- tuşuna basmaktır T. Ctrl-W, çok çeşitli pencere düzenleme komutları için genel önektir.

Görmek:

:help Ctrl-W_T
:help Ctrl-W

3
Not help Ctrl-W_Tyardım girişine götürür Ctrl-W_tSayfanın altındaki Ancak (küçük harfle) 'dir Ctrl-W_T".... yeni sekme sayfasına Geçerli pencereyi taşı" diyerek (sermaye T) giriş
Rabarberski

1
@DrAl ve yeni bir sekme penceresini pencereyi bölmeye nasıl taşıyabiliriz?
Ramiz Uddin

@RamizUddin Bunu yapmanın basit bir yolu yok (hangi pencereye bölmek istediğiniz belli olmadığı için). Ancak, geçerli sekme sayfanızın arabellek numarasını ile bulabilir :echo bufnr("")ve bu sayıyı kullanarak :sp #3veya ile bir pencereyi bölebilirsiniz :sb 3(sayının 3 olduğunu varsayarak). Bunu basitleştirmek için bazı eşlemeler veya işlevler bulabilirsiniz.
DrAl

1
Nasıl mı hareket 's geri alma / yeniden yapma durumunu tutarak yeni bir sekmeye tampon. Başka bir deyişle, aynı dosyayı yeni bir sekmede açmak istemiyorum, tam anlamıyla arabelleği yeni bir sekmeye taşımak istiyorum , böylece düzenleme geçmişi yeni sekmede kullanılabilir. Bunu yapmak için varsayılan bir yol yoksa, geri alma geçmişini yeni arabellek için takas dosyasına yazan bunu yapmak için yeni bir kısayol ekleyen bir eklenti yapılabilir.
trusktr

2
@trusktr Arabelleği yeni bir sekmede açmanın :sbişe yarayacağını düşünürdüm, ancak Vim'in son sürümlerinde (> = 7.3) kalıcı set undodir=/path/to/diryolun / path / to / dir komutunun bir dizin olduğunu ayarlayarak da kullanabilirsiniz. amaç için yaratıldı ve sonra set undofile. Bu, vim'den çıkmanıza ve ardından yeniden başlatmanıza ve geri al / yinele durumunu korumanıza izin verir.
DrAl

103

Deneyin

:tabedit %<CR>

3
Sadece buna neden <CR> eklediğinizi merak ediyorum.
İsviçre

17
Aynı nedenden dolayı ":" yazdım. Bu, normal moddaki tam vim tuşları kombinasyonudur ve bunu 'nnoremap' ve 'nmap' 'de kullanabilirsiniz
Mykola Golubyev

6
Bu, pencereyi önce kapatıp ardından yeni bir sekmede açmak yerine yeni bir sekmeye klonlaması / çoğaltması dışında da işe yarar. Önemli bir şey değil. Dikkat etmemiz gereken birşey.
A-Dubb

6
Bu, arabelleği yeni bir sekmeye taşımıyor, aynı dosyayı yeni bir sekmede açıyor, ancak geri alma / yineleme geçmişiniz vb.
Olmayacak

5
C-w Taynı şeyi yapmanın daha hızlı bir yoludur
Dylanthepiguy

3

Bu, yeni bir sekmedeki en yeni arabelleği taşır ve geçerli sekmedeki önceki arabelleği geri yükler. Bunu Gvim'e yeni bir dosya sürükledikten sonra kullanıyorum

:sbp |wincmd p| wincmd T

Bu şekilde Ctrl-Backspace ile eşleştirebilirsiniz

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

özellikle iyi performans gösterir

:set switchbuf=usetab

0

Ben kullanıyorum bu size kısayol tuşları veya komutların bir çift bağlı olabilir iki işlev veren ve hangi oldukça sezgisel çalışır. Örneğin daha kolay davranış sunuyor eminim Ctrl-W_T.

Örneğin, birden çok sekmede birden çok pencere açık olduğunda, bu işlevi kullanmak, geçerli pencereyi özellikle sonraki veya önceki sekmeye taşımanıza izin verir ve bir şeyi ilk sekmeden önce veya son sekmeden sonra taşırsanız, yepyeni bir sekmede.

Bu, her biri tek bir pencereye sahip 2 sekmeniz varsa, ardından ilk sekmenin penceresini sağa taşımak, iki sekmeli tek bir sekme ile sonuçlanacak şekilde ikinci sekmeyle birleştirir. Bu işlemin geleneksel komutları kullanarak başarmak için ne kadar karmaşık olduğunu bilmiyorum.

Bunun anlamı, tek bir çift hareket komutunun hem pencereleri sekmelerin etrafında kaydırmasına, pencereleri sekmelere ayırmasına (bir pencereyi sonuna kadar iterek) ve ayrı sekmeleri tek bir sekmenin içindeki pencerelere birleştirmeye izin vermesidir, hemen hemen her şey muhtemelen konumsal düzenleme kısa olabilir (bu ayrı bir konu ve yerleşik Ctrl-W+ Shift-HJKLkomutları için iyi çalışır).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.