Come ricaricare il file .vimrc senza riavviare vim?


533

Puoi modificare il tuo .vimrcfile e ricaricarlo senza dover riavviare Vim?

Risposte:


660

Se lo stai modificando, puoi ricaricarlo con:

:so %

%indica il nome del file corrente (vedi :h current-file) ed :soè l'abbreviazione di :source, che legge il contenuto del file specificato e lo tratta come codice Vim.

In generale, per ricaricare il .vimrc attualmente attivo, utilizzare quanto segue (consultare Daily Vim ):

:so $MYVIMRC


36
e :so ~/.vimrcdovrebbe funzionare anche su unix
Yab

3
: così ~ / _vimrc funziona su Windows. Certo, mantengo _vimrc nella mia directory home di Windows, altrimenti non funzionerà. Per vedere ciò che Vim considera la tua home directory, usa :echo expand("~").
Daniel Miladinov,

3
Si noti che se le mappature della tastiera erano già in atto, non verranno cancellate anche se vengono eliminate dal nuovo vimrc
Phani,

O :so ~/.vim/gvimrco dovunque tu lo metta ovviamente
NeilG

79

Ancora meglio, configuri Vim per controllare le modifiche nella tua .vimrce ricaricare automaticamente la configurazione.

augroup myvimrc
    au!
    au BufWritePost .vimrc,_vimrc,vimrc,.gvimrc,_gvimrc,gvimrc so $MYVIMRC | if has('gui_running') | so $MYGVIMRC | endif
augroup END

Fonte: questa risposta su SO

Nota: questo particolare metodo controlla le numerose varianti dei nomi dei file di configurazione di Vim in modo che sia compatibile con GUI Vim, Windows Vim, ecc.


2
Quanto è performante questo metodo?
Alexej Magura,

Trovo che usare questo tipo di comando a volte penda il mio nvim per qualche secondo o più.
jdhao,

11

Mappature chiave

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

Soluzione completamente automatizzata

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.


5

Un'alternativa al ricordare / scrivere :so $MYVIMRCè queste mappature. Ti permette di modificare rapidamente vimrc ( ev) o sorgente vimrc ( sv).

" Quickly open/reload vim
nnoremap <leader>ev :split $MYVIMRC<CR>  
nnoremap <leader>sv :source $MYVIMRC<CR>     
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.