Comment recharger votre fichier .vimrc sans redémarrer vim?

533

Pouvez-vous éditer votre .vimrcfichier et le recharger sans avoir à redémarrer Vim?

ivo
la source

Réponses:

660

Si vous le modifiez, vous pouvez le recharger avec:

:so %

%représente le nom de fichier actuel (voir :h current-file) et :soest l'abréviation de :source, qui lit le contenu du fichier spécifié et le traite en tant que code Vim.

En général, pour recharger le fichier .vimrc actuellement actif, utilisez les éléments suivants (voir Vim quotidien ):

:so $MYVIMRC
Matteo Riva
la source
2
Jetez un coup d'œil à stackoverflow.com/questions/803464/…
mrucci
36
et :so ~/.vimrcdevrait travailler aussi sur unix
Yab
3
: donc ~ / _vimrc fonctionne sur Windows. Bien sûr, je garde mon _vimrc dans mon répertoire personnel Windows, sinon cela ne fonctionnera pas. Pour voir ce que Vim considère comme votre répertoire personnel, utilisez :echo expand("~").
Daniel Miladinov
3
Notez que si les mappages de clavier étaient déjà en place, ils ne seront pas effacés même s'ils sont supprimés du nouveau vimrc
Phani
Ou :so ~/.vim/gvimrcbien où que vous soyez, bien sûr
NeilG
79

Mieux encore, vous configurez Vim pour surveiller les changements dans votre .vimrcet recharger automatiquement la configuration.

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

Source: cette réponse sur SO

Remarque: cette méthode particulière surveille les nombreuses variantes des noms de fichiers de configuration Vim, de sorte qu’elle soit compatible avec les interfaces graphiques Vim, Windows Vim, etc.

Andrei
la source
2
Quelle est la performance de cette méthode?
Alexej Magura
Je trouve que l'utilisation de ce type de commande bloque parfois mon nvim pendant quelques secondes ou plus.
jdhao
11

Mappages clés

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

Solution complètement automatisée

Pour recharger automatiquement à la sauvegarde, ajoutez ce qui suit à votre $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

et pour la dernière fois, tapez:

:so %

La prochaine fois que vous enregistrez votre fichier vimrc, il sera automatiquement rechargé.

Fonctionnalités:

  • Indique à l'utilisateur ce qui s'est passé (se connectant également à :messages)
  • Gère divers noms pour les fichiers de configuration
  • Assure qu'il ne correspond qu'au fichier de configuration actuel (ignore les copies dans d'autres répertoires, ou un fugitive://diff)
  • Ne générera pas d'erreur si vous utilisez vim-tiny

Bien entendu, le rechargement automatique ne se produira que si vous modifiez votre vimrcin vim.

Tom Hale
la source
5

:so $MYVIMRCCes mappages constituent une alternative à la mémorisation / à la frappe . Il vous permet d’éditer rapidement vimrc ( ev) ou source vimrc ( sv).

" Quickly open/reload vim
nnoremap <leader>ev :split $MYVIMRC<CR>  
nnoremap <leader>sv :source $MYVIMRC<CR>     
magé
la source