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.
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.
Yanıtlar:
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 .
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.
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:
:on:onlyBu dört pencerenin her biri etkin pencere dışındaki tüm pencereleri kapatır.
: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 .
geçerli pencere dışındaki tüm pencereleri kapatmak için:
CTRL+ w,o
Yani, önce CTRL+ wsonra o.
CTRL+W odaktiloyu yanlışlıkla geri almanın bir yolu olup olmadığını merak ediyorum .
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.
Zçünkü Almanım . (Spoiler: DE / EN ayarı arasında sık sık geçiş yaparsanız klavye düzeni)
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.
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ırakKapatmak istediğiniz pencereye ctrl+ buldum w, sonra yapın :q. Bu benim için çalışı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
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.
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.
Tamam, sadece ekran oturumuna ayrıldım ve yeniden bağladım ve istediğim normal ekrana geri döndüm
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 .