Vim'de bölünmüş pencereyi iptal et


231

Pencerelerimi yatay olarak ayırdım. Şimdi normal moda nasıl dönebilirim, yani tüm açık pencerelerimi iptal etmeden sadece bölünmüş bir pencere yok. Ben 5 var ve "çıkmak" istemiyorum, sadece bölünmüş pencereden çıkmak istiyorum.


7
Efes'in yanıtını kabul etme şansın var mı? Şu anda kabul
Kyle Strand

Yanıtlar:


288

Control+ wTuşlarına basın , ardından qher seferinde pencereleri kapatmak için tuşuna basın .

Güncelleme : Ayrıca :on , her seferinde bir pencere yapmak istemiyorsanız dahil (aşağıda okuyun) sizin için daha yararlı olabilecek eckes cevabını düşünün .


9
Kabul ediyorum ama OP cevapları cevaplamadı ve ben kendim değiştiremiyorum.
Warren P

4
Bunun doğru cevap olduğundan eminim. Bu benim için yaptı ve op'un sorusuna bakarsanız, diğer açık pencerelerini kapatmak istemedi, sadece son zamanlarda bölünmüş olanı.
Zak

1
Gösterilen arabellek kaydedilmemiş değişiklikler içeriyorsa yardımcı olmaz. Geçersiz kılmam gerektiğini söylüyor! ama nasıl olduğunu bilmiyorum. Bir acemi olarak şimdi kayboldum.
musiKk

2
bu yüzden kaydedin. Nasıl kaydedeceğinizi bilmiyorsanız bu cevaba ihtiyacınız yoktur. Kaydetmek için PERMISSION'ınız bile olmayabilir.
Warren P

1
Geleneksel GUI editörlerinden gelen bu oldukça garip bir kavram. Ayar hiddenolsa yardımcı olur. Ne demek istediğimi, nasıl eklersiniz! bir kısayola? "Cw! Q", "Cw q!", "! Cw q", "C-! W q" mı? Bunların hiçbirini düşünmüyorum ama yeni tamponların nasıl oluşturulacağını zaten unuttum, bu yüzden bu okuyucu için bir egzersiz.
musiKk

265

Tüm böler kapatmak için genellikle olacaktır pencerede imleci üzerinde yapılacak ardından -ly görünür bir ve :onMevcut pencereyi yapar üzerinde -ly görünür pencereye. Hatırlanması güzel anımsatıcı.


Edit: :help :on bana bu komutların aynı olduğunu gösterdi:

Bu dört pencerenin her biri etkin pencere dışındaki tüm pencereleri kapatır.


8
+1 Diğer pencerede istenmeyen değişiklikler varsa, :onyanıt verir E445: Other window contains changesve diğer pencereyi kapatmaz. Örneğin, genellikle yeni bir pencere oluşturuyorum ve içine girmek istediğim bir dosyayı okudum. Bu durumda, Vim diğer pencerede yazılı olmayan değişiklikler olduğunu düşünür. Böyle bir durumda, :on!kapanışı zorlamak için kullanın .
Sabuncu

61

geçerli pencere dışındaki tüm pencereleri kapatmak için:

CTRL+ w,o

Yani, önce CTRL+ wsonra o.


3
Ayrıca bir CTRL+W odaktiloyu yanlışlıkla geri almanın bir yolu olup olmadığını merak ediyorum .
Paolo

30

Geçerli pencereyi kapatmak için iki alternatif vardır ZZve ZQbunlar sırasıyla görüntülenen arabellekteki değişiklikleri kaydeder ve kaydetmez.


10
Bu kesinlikle "vim yolu", crtl + wo çok emacs gibi görünüyor.
Andy Hayden

Sevmiyorum Zçünkü Almanım . (Spoiler: DE / EN ayarı arasında sık sık geçiş yaparsanız klavye düzeni)
Tino

6

Hide komutu, o sırada odaklanılan pencereyi gizler. Bence bu aradığınız işlevsellik.

Pencereler arasında gezinmek için Ctrl + w yazın ve ardından bir gezinme tuşu (h, j, k, l veya ok tuşları) yazın

Daha fazla bilgi için çalıştırın :help windowve :help hidevim.


Bu harika. Chrome (ssh eklentisiyle), tüm vim <cw> pencere komutlarını etkin bir şekilde devre dışı bırakan "kapat sekmesi" olarak <CW> yakalar. Alternatif sahibi olmak faydalıdır.
dizgin

6

Kimden :help opening-window("Bir pencereyi kapatma" araması - /Closing a window)

  • :q[uit]geçerli pencereyi ve arabelleği kapat. Son pencere ise vim'den de çıkacaktır
  • :bd[elete] geçerli arabelleği kaldır ve geçerli pencereyi kapat
  • :qa[all]veya :quita[ll]tüm arabellekleri ve pencereleri kapatır ve vim'den çıkar ( :qa!değişiklikleri kaydetmeden zorlamak için)
  • :clo[se]geçerli pencereyi kapatın, ancak arabelleği açık tutun. Yalnızca bir pencere varsa bu komut başarısız olur
  • :hid[e]mevcut pencerede ara belleği gizle (Daha fazla bilgi için :help hidden)
  • :on[ly] diğer tüm pencereleri kapat ama tüm arabellekleri açık bırak

5

Kapatmak istediğiniz pencereye ctrl+ buldum w, sonra yapın :q. Bu benim için çalışıyor.


Bu gerçekten yinelenen bir cevap, 3+ yıldır orada oturan bir şeyin kopyası.
Warren P

@ WarrenP bir dup gibi görünmüyor. ^W^W:qOlası bir çözüm olarak bahseden başka bir cevap bulamadım, bu yüzden bölünmeden kurtulun. O Not ^W to the window you want to closegörünüşte birden çok kullanım ima ^W^Wkapatmak istediğiniz pencereye .. için anahtara
Tino

Benim hatam. Diğeri ^ W sonra o
Warren P

2

Niyetinizi iyi anlıyorum, sadece tamponları da kullanıyorum ve gerektiğinde ara sıra bölüyorum.

aşağıda benim alıntı .vimrc

" disable macro, since not used in 90+% use cases
map q <Nop>
" q,  close/hide current window, or quit vim if no other window
nnoremap q :if winnr('$') > 1 \|hide\|else\|silent! exec 'q'\|endif<CR>
" qo, close all other window    -- 'o' stands for 'only'
nnoremap qo :only<CR>
set hidden
set timeout
set timeoutlen=200   " let vim wait less for your typing!

Bu da benim iş akışıma oldukça iyi uyuyor

Eğer qbasıldıysa

  • birden çok pencere açıksa geçerli pencereyi gizle, aksi takdirde vim'den çıkmayı deneyin.

eğer qobasılmış,

  • diğer tüm pencereleri kapatın, sadece bir pencere varsa etkisi yok.

Tabii ki, o dağınık parçayı bir işleve , örneğin

func! Hide_cur_window_or_quit_vim()
    if winnr('$') > 1
        hide
    else
        silent! exec 'q'
    endif
endfunc
nnoremap q :call Hide_cur_window_or_quit_vim()<CR>

Sidenote : remap Ben q, kullandığım yerine, düzenleme için makro kullanmayın çünkü :s, :g, :v, ve dış metin işleme komut eğer gerekli, örneğin :'{,'}!awk 'some_programm', ya da kullanımını :norm! normal-command-here.


1

Tıpkı diğerlerinin bunu yapmadan önce söyledikleri gibi ctrl+ wve sonra tuşlarına basmaktır o. Bu, diğer pencereleri kapatırken mevcut pencereyi "en üst düzeye çıkarır". Bunu "maksimize etmek" istiyorsanız, bunun için ZoomWin adlı bir eklenti var. Aksi takdirde, pencere kurulumunu sıfırdan yeniden oluşturmanız gerekir.


0

Tamam, sadece ekran oturumuna ayrıldım ve yeniden bağladım ve istediğim normal ekrana geri döndüm


Bu, vimbölünmüş pencere modundan ayrılmaz , bu sadece screenbölünmüş bölme modunu bırakır - bu da kolayca karıştırılabilir, belki de diğerleri de yapar. BTW Bu ekran özelliğini sinir bozucu buluyorum, bu yüzden artık varsayılan olarak tmuxtüm bölünmelerle yeniden bağlanmaya izin veriyorum .
Tino
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.