Geçerli bölünmenin genişliğini ve yüksekliğini nasıl değiştiririm?


111

Bölme üzerinde çalışıyorum (^ w + v, ^ w + s) arabelleğini kullanıyorum, ancak bazen geçerli bir bölmeyi genişletmek veya yüksekliğini değiştirmek istiyorum. Bunu nasıl başarabilirim?

Yanıtlar:


158

Bunu yapmanıza izin veren birkaç pencere komutu vardır:

  • Ctrl+W +/-: yüksekliği arttır / azalt (ör. 20<C-w>+)
  • Ctrl+W >/<: genişlik / küçültme genişliği (ör. 30<C-w><)
  • Ctrl+W _: yükseklik ayarı (ör. 50<C-w>_)
  • Ctrl+W |: genişliği ayarla (ör. 50<C-w>|)
  • Ctrl+W =: tüm pencerelerin genişliğini ve yüksekliğini eşitle

Ayrıca bakınız: :help CTRL-W


19
Ayrıca, ilk iki seçeneğin bir kerede birden fazla satır / sütunla yeniden boyutlandırılması için bir sayı alabileceğini belirtmekte fayda var.
Zengin

4
Ayrıca, 3. ve 4. seçeneklerin , maksimum yükseklik / genişliğe yeniden boyutlandırmak için hiçbir hesaba dayanamayacağını da belirtebilirsiniz .
Michael

2
Benim sistemimde, :help CTRL-Wve değil:help CTRL_W
Alexej Magura

pencerelerde, Cygwin, vim: ne zaman vimdiff -o bigfile1.bash bigfile2.bash:: ctrl-w =üstünde bir MiniBufExplorer 3. pencere açılır (ve 3 pencerenin boyutu şimdi aynıdır) ve kapanması ilk .bash dosyasının penceresini 2. .bash dosyasından 2 timse daha büyük yapar penceresi. 2 .vim dosyaları ile aynı işlem aynı sonuçları verir. :( Aynıvim -o
Olivier Dulac

İlk iki seçenek için kısayol sormak vi.stackexchange.com/questions/16786/…
KcFnMi

43

resizeKomutları da kullanabilirsiniz :

  • :resize [+-]N - yatay karakterleri yeniden boyutlandırarak, yüksekliği N karakterde artırarak veya azaltarak
  • :vertical resize [+-]N - dikey karakter bölünmesini yeniden boyutlandırın, yüksekliği N karakterde artırın veya azaltın.
  • :resize N - yüksekliği N karakterine ayarlayarak yatay bölmeyi yeniden boyutlandırın.
  • :vertical resize N - genişliği N karakterine ayarlayarak dikey bir bölmeyi yeniden boyutlandırın.

Bunlar Ctrlwkomutlara eşdeğerdir . Bakın :help window-resize.



29

Bu, vim in fare modunu kullanmaktan hoşlanmamın sebeplerinden biri.

GUI sürümünü kullanıyorsanız veya terminaliniz, sürükle olaylarını (örneğin, xterm veya rxvt-unicode) göndermeyi destekliyorsa, ctrl kullanarak bir sürü çalışma yapmadan, pencereyi tam olarak istediğiniz yerde yeniden boyutlandırmak için bölme çizgisine tıklayıp sürükleyebilirsiniz -w artı, eksi, daha az, daha büyük kombinasyonlar.

Terminal versiyonlarında, bunun çalışması için fare modunu doğru bir şekilde ayarlamanız gerekir.

:set mouse=n

('N' kullanıyorum, ancak 'a' da çalışıyor)

ve tty fare türünü ayarlamanız gerekir

:set ttymouse=xterm2

Pek çok insan fareyi kullanarak çok fazla zaman harcandığını söylüyor (çoğunlukla elinizi klavyeden fareye ve geriye hareket ettirmek için harcadığı zamandan dolayı), ancak bu durumda, pencereyi boyutlandırırken anında geri bildirim almak ve yeniden boyutlandırmanın çabukluğunu (başka bir tuş dizisi yazmak yerine fareyi hareket ettirmeye devam edin), kanamalı elin gecikmesinden daha ağır basar.


4
Daha fazla hemfikir olamadım, Gnome-terminalinde :set mouse=nyeteri kadar bulundu, ancak tmux'un içindeyken bunu sağlamak için yeterliydi :set ttymouse=xterm2.
the_velour_fog

1
Kesinlikle doğru, klavyeyi seviyorum, ama bu tür şeyler fare ile daha iyi.
calbertts

Vay, bunu dikkatime sunduğun için teşekkürler!
Charlie Gorichanaz,

Tamamen hemfikir olun "ama bu durumda, pencerenin boyutlarını ayarlarken anında geri bildirim almak suretiyle kaydedilen zamanın ve yeniden boyutlandırmanın çabukluğunun (başka bir tuş dizisi yazmak yerine fareyi hareket ettirmeye devam etmenin) moomik elin gecikmesinden daha ağır olduğunu buluyorum. " .
Nawaz,

4

Bahsedilen kimse yok gibi görünüyor z{nr}<CR>.

Eğer öyleyse :h ^w_, o zaman z{nr}<CR>hemen altında göreceksiniz ki bu da aynı etkiye sahip CTRL-W_.

z=Yazım denetimi yapmanız gerekmiyorsa ve aşağıya eklenmişse .vimrc,

" vertical resize, z0<CR> minimize, z= equalize, z99<CR> maximize.
nnoremap z= <C-w>=

Sonra pencere yüksekliğini değiştirmek için:

  • z0<CR> Mevcut pencerenin yüksekliğini en aza indirmek için
  • z99<CR> mevcut pencerenin yüksekliğini maksimize etmek
  • z= hepsini eşitlemek

2
bu kullanımı zbiraz sezgisel değildir. Bence C-Wharitalamalara bağlı kalmalıyız . Orada ne olduğunu bilmek güzel.
klaus

4

Bölmeleri daha hızlı bir şekilde yeniden boyutlandırma :http://vim.wikia.com/wiki/Resize_splits_more_quickly

Pencerenin yüksekliğini değiştirmek için :resizekomutu veya kısayolunu :reskullanabilirsiniz. Yüksekliği 60 satıra değiştirmek için aşağıdakileri kullanın: :resize 60

Yüksekliği, artımlarla da değiştirebilirsiniz. Yüksekliği 5'lik artışlarla değiştirmek için, şunu kullanın: :res +5 :res -5

Aşağıdakileri kullanabilirsiniz: geçerli pencerenin genişliğini değiştirmek için dikey boyutlandırma. Genişliği 80 sütun olarak değiştirmek için aşağıdakileri kullanın: :vertical resize 80

Genişliği, artışlarla da değiştirebilirsiniz. Genişliği 5'lik artışlarla değiştirmek için, şunu kullanın: :vertical resize +5 :vertical resize -5


Bu Resize splits more quicklykomutlar kutudan yapılmış olan tuş bağlarına bağlı olmadıkça, bu pek mümkün değildir
klaus

Enan'ın ifadesine tamamen katılmayın. Bu cevabı seviyorum imho
zanaat

0

Bazı nedenlerden dolayı (muhtemelen bir eklenti) standart C-w >(vs.) benim işimde çalışmadı ~/.vimrc.

Bu .vimrceklemeler işe yaradı ( Ctrl-Shift-Left... nerede Left | Right= sırasıyla sol ve sağ ok tuşları).

" noremap <silent> <C-S-Left> :vertical resize +5<CR>
" noremap <silent> <C-S-Right> :vertical resize -5<CR>
noremap <silent> <C-S-Left> :vertical resize +1<CR>
noremap <silent> <C-S-Right> :vertical resize -1<CR>
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.