Come ricaricare il mio vimrc senza lasciare Vim?


50

Quando faccio un cambiamento nel mio .vimrc, di solito esco da Vim e lo apro di nuovo. C'è un modo più semplice per ricaricare le nuove .vimrcmodifiche?

Risposte:


47

Correre:

:source $MYVIMRC

all'interno di Vim per ricaricare il vimrcfile. Oppure, una versione più breve:

:so $MYVIMRC

come menzionato in un commento di Kenorb .

Potresti anche trovare utile mappare uno di questi moduli su una chiave. Per esempio:

nnoremap <Leader>r :source $MYVIMRC<CR>

2
Scorciatoia: :so $MYVIMRC.
Kenorb,

@kenorb: ho aggiunto questa possibilità; grazie per averlo menzionato!
Paul Gessler,

:so $m<Tab> ← scorciatoia
Aaron Thoma,

3
Salva altri due tasti con :so %. %è impostato sul nome del file corrente del buffer modificato, in questo caso$MYVIMRC
cbaumhardt

1
Di gran lunga il modo più semplice per farlo è ricaricare automaticamente il VIMRC al momento del salvataggio - controlla le altre risposte.
Tom Hale,

20

Se vuoi solo ricaricare il file di tanto in tanto

:source $MYVIMRC

come ha scritto Paolo è corretto. Se finisci per cambiare spesso vimrc, potresti aggiungere qualcosa del genere al tuo file vimrc:

autocmd BufWritePost .vimrc,_vimrc source $MYVIMRC

Questo ricaricherà il file quando lo scrivi (dall'interno di quella sessione di vim)


1
johannes: Dobbiamo modificare il file .vimrc tramite vim affinché questo comando generi automaticamente il file?
Sai Manoj Kumar Yadlapati,

5
si noti che un file vimrc può anche essere chiamato altre cose: ad esempio vimrc (se è in ~ / .vim).
user50136

1
@SaiManojKumarYadlapati Sì, AS ha detto che deve essere la stessa sessione vom. Bufwritepost viene attivato quando vom scrive
johannes

Problemi con questo: (1) non funziona con .vim/vimrc, (2) creerà duplicati autocmdquindi ogni salvataggio successivo sarà più lento poiché il file verrà ricaricato più volte, (3) non si comporterà con vim-tiny che non funziona hanno autocmd ed è ancora il default su alcune distribuzioni di linux. Vedi la mia risposta per affrontare questi problemi.
Tom Hale,

2
" Quickly edit/reload this configuration file
nnoremap gev :e $MYVIMRC<CR>
nnoremap gsv :so $MYVIMRC<CR>

Per ricaricare automaticamente al salvataggio, aggiungi quanto segue a $MYVIMRC:

if has ('autocmd') " Remain compatible with earlier versions
 augroup vimrc     " Source vim configuration upon save
    autocmd! BufWritePost $MYVIMRC source % | echom "Reloaded " . $MYVIMRC | redraw
    autocmd! BufWritePost $MYGVIMRC if has('gui_running') | so % | echom "Reloaded " . $MYGVIMRC | endif | redraw
  augroup END
endif " has autocmd

e quindi per l'ultima volta, digitare:

:so %

La prossima volta che salverai il tuo vimrc, questo verrà ricaricato automaticamente.

Caratteristiche:

  • Indica all'utente cosa è successo (accedendo anche a :messages)
  • Gestisce vari nomi per i file di configurazione
  • Assicura che corrisponderà solo al file di configurazione effettivo (ignora le copie in altre directory o un fugitive://diff)
  • Non genererà un errore se si utilizza vim-tiny

Ovviamente, il ricaricamento automatico avverrà solo se modifichi il tuo vimrcin vim.

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.