Questão Como você recarrega seu arquivo .vimrc sem reiniciar o vim?


Você pode editar o seu .vimrc arquivo e recarregá-lo sem ter que reiniciar o Vim?


495


origem




Respostas:


Se você está editando, você pode recarregá-lo com:

:so %

% significa nome do arquivo atual :h current-file) e :so é curto para :source, que lê o conteúdo do arquivo especificado e o trata como código Vim.

Em geral, para recarregar o arquivo .vimrc atualmente ativo, use o seguinte Vim Diário):

:so $MYVIMRC

611



Dê uma olhada em stackoverflow.com/questions/803464/… - mrucci
e :so ~/.vimrc deve funcionar também no unix - Yab
: então ~ / _vimrc funciona no windows. Claro, eu mantenho meu _vimrc no meu diretório pessoal do windows, senão isso não funciona. Para ver o que o Vim considera seu diretório inicial, use :echo expand("~"). - Daniel Miladinov
Observe que, se os mapeamentos de teclado já estiverem em vigor, eles não serão apagados, mesmo que sejam excluídos do novo vimrc. - Phani


Melhor ainda, você configura o Vim para observar as mudanças .vimrc e recarregue automaticamente a configuração.

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

Fonte: esta resposta em SO

Nota: este método particular observa as muitas variações de nomes de arquivos de configuração do Vim para que seja compatível com GUI Vim, Windows Vim, etc.


76



Como performant é este método? - Alexej Magura


Mapeamentos de Chaves

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

Solução completamente automatizada

Para automaticamente recarregar após salvar, adicione o seguinte ao seu $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

e, pela última vez, digite:

:so %

A próxima vez que você salvar seu vimrc, será automaticamente recarregado.

Características:

  • Diz ao usuário o que aconteceu (também registrando :messages)
  • Lida com vários nomes para os arquivos de configuração
  • Assegura que ele corresponderá apenas ao arquivo de configuração real (ignora cópias em outros diretórios ou fugitive:// diff)
  • Não irá gerar um erro se estiver usando vim-tiny

Claro, a recarga automática só acontecerá se você editar o seu vimrc no vim.


8





Uma alternativa para lembrar / digitar :so $MYVIMRC são esses mapeamentos. Permite editar rapidamente o vimrc (ev) ou fonte vimrc (sv).

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

4