Mevcut pencerelerinizi Vim'de yatay bölünmeden dikey bölünmeye veya tersini nasıl değiştirebilirsiniz?
Bunu bir an önce kazara yaptım ama anahtarı bir daha bulamıyorum.
Mevcut pencerelerinizi Vim'de yatay bölünmeden dikey bölünmeye veya tersini nasıl değiştirebilirsiniz?
Bunu bir an önce kazara yaptım ama anahtarı bir daha bulamıyorum.
Yanıtlar:
Vim posta listesi diyor (daha iyi okunabilirlik için yeniden biçimlendirildi):
Değiştirmek için iki horizonally bölünmeye dikey bölünmüş pencereler
Ctrl- w t Ctrl-w K
Yatay - dikey:
Ctrl- w t Ctrl-w H
açıklamalar:
Ctrl- w t ilk (üst sol) pencereyi güncel yapar
Ctrl- w K geçerli pencereyi en üstte tam genişliğe taşır
Ctrl- w H geçerli pencereyi en solda tam yüksekliğe taşır
T harfinin küçük, K ve H harflerinin büyük harf olduğuna dikkat edin.
Eğer verebilecek gibi Ayrıca sadece iki pencereli, öyle görünüyor Ctrl- w tEğer mevcut hale ne anlamı var, sadece iki pencerelerden birinde Zaten çünkü eğer parçasını?
:nmap <leader>th <C-w>t<C-w>H
ve:nmap <leader>tk <C-w>t<C-w>K
Ctrl- wtakiben H, J, Kveya L(sermaye) kadar geçerli pencereyi hareket edecek left
, bottom
, top
veya right
sırasıyla gibi normal imleç navigasyon.
Küçük harfler, pencereyi taşımak yerine odağı taşır.
Ctrl
- w
( Örneğinizde ^
araç Ctrl
olup olmadığını bilmiyorum ).
^
demek Ctrl
.
Aşağıdaki ex komutları herhangi bir sayıda pencereyi (yeniden) böler:
:vertical ball
:ball
Gizli arabellekler varsa, bu komutların verilmesi gizli arabellekleri de görünür hale getirir.
:vert[ical] ball
doc de çok :vert ball
iyi ve daha kısa.
:ball
3 dikey pencereyi 2 yatay pencereye azaltırken, :vert ball
3 yatay pencereyi 3 dikey pencereye doğru şekilde eşler.
VIM'de, yapabilecekleriniz için farklı alternatifler görmek üzere aşağıdakilere göz atın:
: açılış penceresi
Örneğin:
Ctrl- W s
Ctrl- W o
Ctrl- W v
Ctrl- W o
Ctrl- W s
...
Yatay - dikey bölme
CtrlWpencere komutu için + ve ardından Shift+ Hveya Shift+L
Dikey - yatay bölme
CtrlWpencere komutu için + ve ardından Shift+ Kveya Shift+J
Her iki çözüm de yalnızca iki pencere olduğunda geçerlidir.
Bu satırların her ikisini de ekleyin .vimrc
:
cabbrev help vert help
cabbrev h vert h
:vert[ical] {cmd}
her zaman cmd
dikey olarak bölünmüş bir pencerede yürütür .
Steve yanıtından esinlenerek, geçerli sekmedeki tüm pencereler için dikey ve yatay bölünmeler arasında geçiş yapan basit bir işlev yazdım. Aşağıdaki son satırdaki gibi eşlemeye bağlayabilirsiniz.
function! ToggleWindowHorizontalVerticalSplit()
if !exists('t:splitType')
let t:splitType = 'vertical'
endif
if t:splitType == 'vertical' " is vertical switch to horizontal
windo wincmd K
let t:splitType = 'horizontal'
else " is horizontal switch to vertical
windo wincmd H
let t:splitType = 'vertical'
endif
endfunction
nnoremap <silent> <leader>wt :call ToggleWindowHorizontalVerticalSplit()<cr>
if winnr() == 1 windo wincmd J windo wincmd k else windo wincmd J endif
ve if winnr() == 1 windo wincmd L windo wincmd h else windo wincmd L endif
Umut mantıklı söyledi.
Mark Rushakoff'un yukarıdaki ipucunu takiben, haritam :
" vertical to horizontal ( | -> -- )
noremap <c-w>- <c-w>t<c-w>K
" horizontal to vertical ( -- -> | )
noremap <c-w>\| <c-w>t<c-w>H
noremap <c-w>\ <c-w>t<c-w>H
noremap <c-w>/ <c-w>t<c-w>H
Düzenleme: kullanın Ctrl- w riyi sırada değilse iki pencere takas etmek için.