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?

thameera
la source

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>
Paul Gessler
la source
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)

johannes
la source
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.

Tom Hale
la source