Apertura della guida di Vim in una finestra divisa in verticale


114

C'è un modo per far sì che la guida di Vim si apra in un riquadro diviso in verticale anziché in uno orizzontale?

Risposte:


127

:vertical( vert) funziona:

:vert help

È inoltre possibile controllare se la finestra si divide a sinistra / in alto oa destra / in basso con topleft( to) e botright( bo) . Ad esempio, per aprire la guida nella finestra di destra di una divisione verticale:

:vert bo help

2
come posso mapparlo così quando corro: help ____ si apre sempre così?
Tallboy

13
@Tallboy Try cnoremap help vert help. Questo crea una mappatura della modalità di comando in modo che quando digiti helpin modalità di comando la vedrai espandere in vert help.
Keith Pinson

3
@Kazark: cnoremap help vert helpfa apparire ogni lettera di helpda sola, quindi la parola helpnon appare sulla riga di comando. C'è un modo per risolverlo? Forse qualcosa di diverso cnoremap?
iconoclasta

7
Per migliorare di più: è possibile utilizzare cabbrev per ridefinire h come vert h: :cabbrev h vert h. Quindi ogni volta che digiti :h, si espanderà automaticamente in :vert h.
Aaron Shen

@AaronShen: migliore soluzione (in combinazione con questa risposta)!
gauteh

38

In alternativa alle risposte di Haroogan e Sean puoi usare l' FileTypeevento per l'autocomando in questo modo:

autocmd FileType help wincmd L

Anche se questo cambierà la posizione di qualsiasi finestra della guida così come lo spostamento della finestra dopo averla posizionata manualmente se il file che stai guardando cambia. Ma credo che questo sia un problema con qualsiasi soluzione.


2
Semplice e (se ho capito bene) gli effetti collaterali sono trascurabili. Perché questa non è la risposta accettata !? E perché una risposta completamente irrilevante ( :vsplit) ha molti voti positivi !?
iconoclasta

1
Ho votato positivamente sia questa che le risposte di Haroogan per la loro semplicità. Non ho molta familiarità con gli eventi di autocmd e mi chiedevo quale fosse la ragione help,*invece che semplicemente help. Inoltre, ho notato che questo comando funziona quando lo aggiungo al mio _vimrce avvio una nuova istanza di GVim ma non quando :set ft=helpeseguo il comando nella mia attuale sessione GVim (devo attivare manualmente l'autocmd).
Anthony Geoghegan

Grazie per il commento: il *non era effettivamente necessario. Per quanto posso capire per la sessione corrente rispetto alla nuova sessione, nella nuova sessione dovresti reindirizzare il tuo vimrcper rendere effettive le modifiche, inoltre se il file è già aperto nel buffer e :helpti porta a un altro parte del file, questo autocmdnon avrà alcun effetto
EdJoJob

Ci sarà un modo più breve per affrontare anche: h con lo stesso autocmd? Attualmente lo scrivo in una riga extra:autocmd FileType help wincmd L autocmd FileType h wincmd L
danbruegge

1
Questo autocmd risolve il problema esaminando il tipo di file dei file della guida. Tutti i file della guida sono del tipo di helpfile, quindi impostando il tipo di helpfile verrà eseguito questo autocmd. Puoi testarlo :sef helpin qualsiasi file mentre c'è una divisione nella tua finestra, quindi il secondo autocmd di @ danbruegge non sarebbe necessario
EdJoJob

20

Non è necessario rimappare alcun comando o introdurre strani alias come :Help. Ecco la soluzione. Crea ~/.vim/after/ftplugin/help.vimdove puoi sovrascrivere qualsiasi impostazione di Vim in particolare per helpe aggiungi la seguente riga lì:

autocmd BufWinEnter <buffer> wincmd L

Questo hook garantirà che qualsiasi helpfile venga aperto in divisione verticale. Inoltre, non ha un effetto collaterale descritto nella risposta di Sean. Personalmente, questa è la soluzione perfetta per me finora.

Spero che questo ti aiuti. Buona fortuna.


18

Questo comando dovrebbe farlo:

:vert help

10
Non ho capito. Tutto ciò che :vsplitfa è dividere la finestra corrente verticalmente. Come funziona questo aiuto aperto in un riquadro verticale?
doppio In calo il

7

Metti questo nel tuo .vimrc:

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

Ora puoi aprire una guida verticale con il :Helpcomando (nota che la prima lettera è maiuscola)


6

Per fare in modo che i file di aiuto si aprano sempre in una divisione verticale a destra, mettilo nel tuo vimrc:

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

Questo avrà l'effetto collaterale di avere qualsiasi cosa con "doc" nel suo percorso aperto in una divisione verticale, ma potrebbe non essere un problema per te. Non è per me. Se preferisci che si apra in una divisione verticale sinistra, o qualsiasi altra cosa per quella materia, puoi cambiare wincmd L. Puoi saperne di più con:he wincmd


1
Controlla il tipo di file prima della divisione,:au BufEnter */doc/* if &filetype=='help' | wincmd L | endif
rox

Questo e spettacolare! autocmd FileType help wincmd Lfunziona solo una volta per me, funziona molto bene!
voldikss


3

Questo sposta la finestra della guida una volta . Quindi puoi spostarlo liberamente dopo aver creato la finestra.

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 funzione ILikeHelpToTheRight()verrà eseguita solo wincmd Luna volta per finestra (è a questo scopo il w:prefisso).

Questo viene quindi chiamato ogni volta che viene aperto un file di "aiuto". Questo non ha gli effetti collaterali della soluzione di EdJoJob.


2

Apri dinamicamente le finestre della guida in alto se c'è più di una finestra nella scheda corrente, oa destra, se c'è solo una finestra:

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

Dovrai ftplugin/help.viminserirlo o usarlo con un autocmd, ad esempio:

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

1

Questo è pensato per aggiungere alla risposta di @ m42, ma non ho ancora 50 rappresentanti qui su COSÌ corretto da aggiungere ai commenti.

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

Ora premendo Ctrl-H in modalità Normale si passerà alla modalità Comando, prefissata per aprire la guida in una finestra divisa verticalmente a destra. Includere uno spazio finale dopo help·<- alla fine della riga di configurazione per ottenere i migliori risultati.

Questa mappatura ti consente di utilizzare ancora :help\ :hper aprire una finestra divisa orizzontalmente o scorrere la cronologia dei comandi della guida precedente senza che il prompt si espanda automaticamente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.