¿Cómo puedo hacer que Vim abra la ayuda en una división vertical?


18

Por lo general, trabajo en un terminal desplegable, con unos 25 caracteres de altura. Como prefiero las pestañas a las ventanas 1 , generalmente se desperdicia mucho espacio horizontal, alrededor de la mitad del ancho del terminal.

Además de eso, Vim, con la configuración predeterminada de helpheight, deja solo un par de líneas del contenido del archivo cuando abro una ventana de ayuda:

ingrese la descripción de la imagen aquí

¿Hay alguna manera de hacer :huso de una división vertical?

Yo podría:

  • disminución helpheight
  • use <C-W>Lpara mover manualmente la ventana
  • hacer un mapa o un comando personalizado que haga lo anterior por mí.

¿Hay una manera más sencilla?

1 Me hago ventanas de uso cuando tengo que mirar a varios archivos juntos. Pero generalmente prefiero que cada archivo esté en su propio contexto (mental).


@statox lo siento por eso. No sé lo que estaba pensando cuando escribí eso.
muru

Ajá, no hay que disculparse, también les sucede a los mejores ;-)
statox

Respuestas:


16

Puede usar :vert h [your topic]para abrir la ayuda verticalmente.

Puede usar el siguiente comando:

cnoreabbrev H vert h

Para hacer vim sustituir Hpor vert hde forma automática en la línea de comandos.

También puedes usar esta abreviatura:

cnoreabbrev HR vert bo h

Para abrir la ventana de ayuda en el lado derecho de la pantalla. (ver :h :botrightpara más detalles sobre bo)


Entonces, ¿no hay una opción configurable? Algo como splitrightpara :help?
muru

No estoy seguro de entender lo que quiere decir, ¿preferiría poder elegir dónde debe ubicarse la ventana de ayuda?
statox

Creo que quisiste decir en :rightbelowlugar de :botright.
muru

2
Bueno, depende de la conducta que está esperando, let dice que usted debe jugar con :lefta[bove], :rightb[elow], :to[pleft]y :bo[tright]y ver cuál prefiere. Prefiero :botrightterminar :rightbelowporque cualquiera que sea mi diseño, obtendré una ventana de ayuda de toda la altura de la pantalla. Con :rightbelowes que ya tengo una división horizontal, mi ventana de ayuda tendrá la altura de esta división.
statox

2
Lamentablemente, escribir cabbrevcomandos correctos implica algún ritual .
Sato Katsura el

7

Esto está inspirado en el vimrc de junegunn :

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

1
Tengo curiosidad: ¿en qué se diferencia esto autocmd FileType help wincmd L? ¿Algún caso límite?
muru

Creo que se activa dos veces, al menos a veces (intente agregar un eco allí). Podría tener algo que ver con la apertura de la ventana de ayuda, que ir a la etiqueta de ayuda específica. Entonces, el BufEntersería un poco más eficiente. Sin mencionar la adición de un comando que, cuando se activa dos veces, se "deshace" (se cancela).
VanLaser

6

Puede usar un comando personalizado que haga la selección vertical o no por usted. Esto puede basarse en el ancho y alto de la ventana actual:

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>)

Referencias

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

Excelente. Esto será muy útil para las veces que tengo gvim abierto cubriendo una mitad vertical de mi pantalla.
muru

0

Si bien esto no es una división vertical per-se, creo que tener ayuda en su propia pestaña es muy bueno.

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

Whoops Pensé que había pegado toda la respuesta. Aquí está el resto del código.

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

1
Sería una buena idea mostrar también cuál es su HelpInNewTab()función porque creo que esta no es una característica incorporada, por lo que no podemos probar su solución.
statox

"Sólo se aplican a los archivos de ayuda ... HelpInNewTab función () si y buftype == 'ayuda'!" Ventana de ayuda se convierten en una pestaña ejecutar "normal \ <CW> T" endif endfunction
Mark Nichols
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.