Abrir la ayuda de Vim en una ventana dividida verticalmente

114

¿Hay alguna manera de que la ayuda de Vim se abra en un panel dividido vertical en lugar de uno horizontal?

Yewge
fuente

Respuestas:

127

:vertical( vert) funciona:

:vert help

También puede controlar si la ventana se divide a la izquierda / arriba o a la derecha / abajo con topleft( to) y botright( bo) . Por ejemplo, para abrir la ayuda en la ventana derecha de una división vertical:

:vert bo help
m42
fuente
2
¿Cómo puedo mapear eso para que cuando ejecute: ayuda ____ siempre se abre así?
Tallboy
13
@Tallboy Prueba cnoremap help vert help. Esto crea una asignación de modo de comando de modo que cuando escriba helpen modo de comando verá que se expande vert help.
Keith Pinson
3
@Kazark: cnoremap help vert helphace que cada letra de helpaparezca por sí misma, por lo que la palabra helpno aparece en la línea de comando. ¿Hay alguna manera de arreglar eso? ¿Quizás algo más que cnoremap?
iconoclasta
7
Para mejorar más: se puede usar cabbrev a redefinir h como vert h: :cabbrev h vert h. Luego, cada vez que escriba :h, se expandirá automáticamente a :vert h.
Aaron Shen
@AaronShen: ¡la mejor solución (en combinación con esta respuesta)!
gauteh
38

Como alternativa a las respuestas de Haroogan y Sean, puede usar el FileTypeevento para el autocomando de esta manera:

autocmd FileType help wincmd L

Aunque esto cambiará la posición de cualquier ventana de ayuda además de mover la ventana después de colocarla manualmente si el archivo que está viendo cambia. Pero creo que este es un problema con cualquier solución.

EdJoJob
fuente
2
Simple y (si lo entiendo correctamente) los efectos secundarios son insignificantes. ¿¡Por qué esta no es la respuesta aceptada !? ¿¡Y por qué una respuesta completamente irrelevante ( :vsplit) tiene muchos votos a favor !?
iconoclasta
1
Elegí tanto esta respuesta como las de Haroogan por su simplicidad. No estoy muy familiarizado con los eventos autocmd y me preguntaba cuál es el motivo en help,*lugar de simplemente help. Además, noté que este comando funciona cuando lo agrego a mi _vimrce inicio una nueva instancia de GVim, pero no cuando ejecuto el comando en mi sesión actual de GVim (tengo :set ft=helpque activar manualmente el autocmd).
Anthony Geoghegan
Gracias por el comentario: en *realidad no era necesario. Por lo que puedo entender para la sesión actual frente a la nueva sesión, en la nueva sesión necesitaría volver a obtener su fuente vimrcpara que los cambios surtan efecto, además, si el archivo ya está abierto en el búfer y :helpsimplemente lo lleva a un parte del archivo, esto autocmdno tendrá ningún efecto
EdJoJob
¿Habrá una forma más corta de abordar también: h con el mismo autocmd? Actualmente lo escribo en una línea adicional:autocmd FileType help wincmd L autocmd FileType h wincmd L
danbruegge
1
Este autocmd soluciona el problema observando el tipo de archivo de los archivos de ayuda. Todos los archivos de ayuda son del tipo de helparchivo, por lo tanto, en la configuración del tipo de helparchivo, este autocmd se ejecutará. Puede probar esto haciendo :sef helpen cualquier archivo mientras haya una división en su ventana, por lo tanto, el segundo autocmd de @ danbruegge no sería necesario
EdJoJob
20

No es necesario reasignar ningún comando o introducir alias extraños como :Help. Aqui esta la solucion. Cree un lugar ~/.vim/after/ftplugin/help.vimdonde pueda anular cualquier configuración de Vim especialmente para helpy agregue la siguiente línea allí:

autocmd BufWinEnter <buffer> wincmd L

Este gancho asegurará que cualquier helparchivo se abra en división vertical. Además, no tiene un efecto secundario descrito en la respuesta de Sean. Personalmente, esta es la solución perfecta para mí hasta ahora.

Espero que esto ayude. La mejor de las suertes.

Alexander Shukaev
fuente
18

Este comando debería hacerlo:

:vert help
Berzemus
fuente
10
No entiendo esto. Todo lo que :vsplithace es dividir la ventana actual verticalmente. ¿Cómo ayuda esta apertura en un panel vertical?
doubleDown
7

Pon esto en tu .vimrc:

command -nargs=* -complete=help Help vertical belowright help <args>

Ahora puede abrir una ayuda vertical con el :Helpcomando (observe que la primera letra está en mayúsculas)

Crónico
fuente
6

Para que los archivos de ayuda siempre se abran en una división vertical a la derecha, coloque esto en su vimrc:

augroup helpfiles
  au!
  au BufRead,BufEnter */doc/* wincmd L
augroup END

Esto tendrá el efecto secundario de tener cualquier cosa con "doc" en su camino abierto en una división vertical, pero eso puede no ser un problema para usted. No es para mi Si prefiere que se abra en una división vertical izquierda, o cualquier otra cosa, puede cambiar wincmd L. Puedes aprender más sobre esto con:he wincmd

Sean Mackesey
fuente
1
Verifique el tipo de archivo antes de dividir,:au BufEnter */doc/* if &filetype=='help' | wincmd L | endif
rox
¡Esto es asombroso! autocmd FileType help wincmd Lsolo funciona una vez para mí, ¡esto funciona muy bien!
voldikss
6

Pon lo siguiente en tu ~/.vim/ftplugin/help.vim

wincmd L

No puede ser más simple que esto :)

Shrikant Sharat
fuente
Esto ya no funciona. Vea este número en Github: github.com/vim/vim/issues/1806
Ilker Mutlu
3

Esto mueve la ventana de ayuda una vez . Por lo tanto, puede moverlo libremente después de crear la ventana.

if has('autocmd')
  function! ILikeHelpToTheRight()
    if !exists('w:help_is_moved') || w:help_is_moved != "right"
      wincmd L
      let w:help_is_moved = "right"
    endif
  endfunction

  augroup HelpPages
    autocmd FileType help nested call ILikeHelpToTheRight()
  augroup END
endif

La función ILikeHelpToTheRight()solo se ejecutará wincmd Luna vez por ventana (para eso es el w:prefijo).

A continuación, se llama cada vez que se abre un archivo de "ayuda". Esto no tiene los efectos secundarios de la solución de EdJoJob.

doc what
fuente
2

Abra dinámicamente ventanas de ayuda en la parte superior si hay más de una ventana en la pestaña actual, o a la derecha, si solo hay una ventana:

if winnr('$') > 2
    wincmd K
else
    wincmd L
endif

Deberá colocar esto ftplugin/help.vimo usarlo con autocmd, por ejemplo:

augroup my_filetype_settings
autocmd!
autocmd FileType help if winnr('$') > 2 | wincmd K | else | wincmd L | endif
augroup END
rafi
fuente
1

Esto está destinado a agregar a la respuesta de @ m42, pero todavía no tengo 50 representantes aquí en SO adecuado para agregar a los comentarios.

Agregar nnoremap <C-H> :vert bo helpa .vimrc

Ahora presionando Ctrl-H en el modo Normal saltará al modo Comando, prefijado para abrir la ayuda en una ventana dividida verticalmente a la derecha. Incluya un espacio final después de help·<- al final de la línea de configuración para obtener mejores resultados.

Este mapeo le permite seguir usando :help\ :hpara abrir una ventana dividida horizontalmente o recorrer el historial de comandos de ayuda anterior sin que el mensaje se expanda automáticamente.

remyActual
fuente