Comment recharger mon vimrc sans quitter Vim?


50

Quand je modifie mon ordinateur .vimrc, je quitte habituellement Vim et l'ouvre à nouveau. Existe-t-il un moyen plus simple de recharger les nouvelles .vimrcmodifications?

Réponses:


47

Courir:

:source $MYVIMRC

dans Vim pour recharger le vimrcfichier. Ou une version plus courte:

:so $MYVIMRC

comme mentionné dans un commentaire de Kenorb .

Vous pouvez également trouver utile de mapper l’un ou l’autre de ces formulaires sur une clé. Par exemple:

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

2
Raccourci: :so $MYVIMRC.
Kenorb

@kenorb: J'ai ajouté cette possibilité. merci de le mentionner!
Paul Gessler

:so $m<Tab> ← coupe extra courte
Aaron Thoma

3
Enregistrez deux autres frappes avec :so %. %est défini sur le nom de fichier actuel de la mémoire tampon que vous avez $MYVIMRC
modifiée

1
Pour ce faire, le moyen le plus simple consiste à recharger automatiquement vimrc au moment de la sauvegarde. Vérifiez les autres réponses.
Tom Hale

20

Si vous voulez juste recharger le fichier de temps en temps

:source $MYVIMRC

comme Paul a écrit est correct. Si vous changez souvent votre vimrc, vous pouvez ajouter quelque chose comme ceci à votre fichier vimrc:

autocmd BufWritePost .vimrc,_vimrc source $MYVIMRC

Cela rechargera le fichier quand vous l'écriverez (depuis cette session vim)


1
johannes: Avons-nous besoin de modifier le fichier .vimrc via vim pour que cette commande fournisse automatiquement le fichier?
Sai Manoj Kumar Yadlapati

5
notez qu'un fichier vimrc peut également s'appeler autre chose: par exemple vimrc (s'il est dans ~ / .vim).
user50136

1
@SaiManojKumarYadlapati Oui, AS a dit que cela devait être la même session de vom. Bufwritepost se déclenche lorsque vom écrit
johannes

Problèmes avec ceci: (1) ne fonctionne pas avec .vim/vimrc, (2) créera des doublons, autocmdainsi chaque enregistrement suivant sera plus lent car le fichier sera rechargé plusieurs fois, (3) ne se comporte pas avec vim-tiny qui ne fonctionne pas autocmd et est toujours la valeur par défaut sur certaines distributions Linux. Voir ma réponse pour résoudre ces problèmes.
Tom Hale

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

Pour recharger automatiquement lors de 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.

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.