Vim'i dikey bir bölmede nasıl açık yardım yapabilirim?


18

Genellikle yaklaşık 25 karakter yüksekliğinde açılan bir terminalde çalışıyorum. Sekmeleri pencerelere 1 tercih ettiğim için , genellikle çok fazla yatay alan boşa harcanır - terminal genişliğinin yaklaşık yarısı.

Bunun üzerine, Vim, varsayılan ayarıyla, helpheightbir yardım penceresi açtığımda dosya içeriğinin sadece birkaç satırını bırakır:

resim açıklamasını buraya girin

:hDikey bir bölme kullanmanın bir yolu var mı ?

Yapabilirdim:

  • azaltmak helpheight
  • <C-W>Lpencereyi elle taşımak için kullanın
  • benim için yukarıdakileri yapan bir harita veya özel bir komut yapın.

Daha basit bir yol var mı?

1 ı do ben birlikte birden fazla dosya bakmak gerektiğinde kullanım pencerelerini. Ancak genellikle her dosyanın kendi (zihinsel) bağlamında olmasını tercih ederim.


@statox bunun için üzgünüm. Bunu yazarken ne düşündüğümü bilmiyorum.
muru

Ahah üzgünüm gerek en iyi olanlar da olur ;-)
statox

Yanıtlar:


16

:vert h [your topic]Yardımı dikey olarak açmak için kullanabilirsiniz .

Aşağıdaki komutu kullanabilirsiniz:

cnoreabbrev H vert h

Yerine vim yapmak için Htarafından vert hkomut satırında otomatik.

Ayrıca bu kısaltmayı kullanabilirsiniz:

cnoreabbrev HR vert bo h

Ekranın sağ tarafındaki yardım penceresini açmak için. (hakkında :h :botrightdaha fazla bilgi için bakın bo)


Peki, yapılandırılabilir seçenek yok mu? Böyle bir şey splitrightiçin :help?
muru

Ne demek istediğinizi anlayamıyorum, yardım penceresinin nereye yerleştirileceğini seçmeyi tercih eder misiniz?
statox

Sanırım bunun :rightbelowyerine demek istedin :botright.
muru

2
Eğer bekliyoruz davranışa bağlıdır Eh, let sen oynamak gerektiğini söylüyor :lefta[bove], :rightb[elow], :to[pleft]ve :bo[tright]ve tercih hangisi olduğunu görün. Tercih ederim :botright, :rightbelowçünkü düzenim ne olursa olsun, ekranın tam yüksekliğinde bir yardım penceresi alacağım. İle :rightbelowolan Ben zaten yardım penceresi bu bölünme yüksekliğinin olacak bir yatay bölünme var.
statox

2
Ne yazık ki, doğru cabbrevkomutları yazmak bazı ritüelleri içerir .
Sato Katsura

7

Bu esinlenerek junegunn 'ler vimrc :

augroup vimrc_help
  autocmd!
  autocmd BufEnter *.txt if &buftype == 'help' | wincmd L | endif
augroup END

1
Merak ediyorum: bunun farkı autocmd FileType help wincmd Lnedir? Kenar vakası var mı?
muru

Bunun en azından bazen iki kez tetiklendiğini düşünüyorum (orada bir yankı eklemeyi deneyin). Belirli bir yardım etiketine gitmektense, yardım penceresi açılırken bir şey olabilir. Yani, BufEnterbiraz daha verimli olurdu. İki kez tetiklendiğinde "geri alındı" (kendini iptal et) haline gelecek bir komut eklemekten bahsetmiyorum bile.
VanLaser

6

Sizin için dikey veya dikey seçimi yapan özel bir komut kullanabilirsiniz. Bu, geçerli pencere genişliği ve yüksekliğine bağlı olabilir:

function! s:ShowHelp(tag) abort
  if winheight('%') < winwidth('%')
    execute 'vertical help '.a:tag
  else
    execute 'help '.a:tag
  endif
endfunction

command! -nargs=1 H call s:ShowHelp(<f-args>)

Referanslar :

  • :h winheight
  • :h <f-args>

Mükemmel. Bu, ekranımın dikey bir yarısını kaplayan gvim açık olduğum zamanlar için çok yararlı olacaktır.
muru

0

Bu kendi başına dikey bir bölünme olmasa da, kendi sekmesinde çok güzel olmak için yardım buluyorum.

augroup HelpInTabs
autocmd!
   autocmd BufEnter *.txt call HelpInNewTab()
augroup END

Whoops. Tüm cevabı yapıştırdığımı sanıyordum. Kodun geri kalanı.

" only apply to help files...
function! HelpInNewTab ()
  if &buftype == 'help'
    " convert help window to a tab
    execute "normal \<C-W>T"
  endif
endfunction

1
Bu ayrıca HelpInNewTab()işlevinizin ne olduğunu göstermek için iyi bir fikir olacaktır, çünkü bunun yerleşik bir özellik olmadığını düşünüyorum, böylece çözümünüzü gerçekten test edemeyiz.
statox

"sadece yardım dosyalarına uygulanır ... işlevi! HelpInNewTab () eğer & buftype == 'help'" yardım penceresini sekmeye dönüştür "normal \ <CW> T" endif endfunction
Mark Nichols
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.