web-dev-qa-db-fra.com

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

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

517
ivo

Si vous le modifiez, vous pouvez le recharger avec:

:so %

% représente le nom du fichier en cours (voir :h current-file) et :so est l'abréviation de :source, qui lit le contenu du fichier spécifié et le traite comme un code Vim.

En général, pour recharger le fichier .vimrc actuellement actif, utilisez ce qui suit (voir Daily Vim ):

:so $MYVIMRC
638
Matteo Riva

Mieux encore, vous configurez Vim pour surveiller les changements dans votre .vimrc et 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 l'interface graphique Vim, Windows Vim, etc.

77
Andrei

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 automatiquement recharger à 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 sauvegarderez votre vimrc, elle sera automatiquement rechargée.

Caractéristiques:

  • 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 diff fugitive://)
  • Ne générera pas d'erreur si vous utilisez vim-tiny

Bien sûr, le rechargement automatique ne se produira que si vous éditez votre vimrc dans vim.

9
Tom Hale

Ces mappages constituent une alternative à la mémorisation/à la saisie de :so $MYVIMRC. 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>     
5
maged