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 .
hidden
olsa 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 :on
Mevcut 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
:only
Bu dört pencerenin her biri etkin pencere dışındaki tüm pencereleri kapatır.
:on
yanıt verir E445: Other window contains changes
ve 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 o
daktiloyu yanlışlıkla geri almanın bir yolu olup olmadığını merak ediyorum .
Geçerli pencereyi kapatmak için iki alternatif vardır ZZ
ve ZQ
bunlar 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 window
ve :help hide
vim.
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:q
Olası 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 close
görünüşte birden çok kullanım ima ^W^W
kapatmak 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
q
basıldıysa
- birden çok pencere açıksa geçerli pencereyi gizle, aksi takdirde vim'den çıkmayı deneyin.
eğer
qo
bası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
vim
bölünmüş pencere modundan ayrılmaz , bu sadece screen
bö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 tmux
tüm bölünmelerle yeniden bağlanmaya izin veriyorum .