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


533

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

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

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.


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.


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>     
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.