Como recarrego meu vimrc sem sair do Vim?

50

Quando faço uma alteração no meu .vimrc, normalmente saio do Vim e o abro novamente. Existe uma maneira mais fácil de recarregar as novas .vimrcalterações?

thameera
fonte

Respostas:

47

Corre:

:source $MYVIMRC

dentro do Vim para recarregar o vimrcarquivo. Ou, uma versão mais curta:

:so $MYVIMRC

como mencionado em um comentário por kenorb .

Você também pode achar útil mapear um desses formulários para uma chave. Por exemplo:

nnoremap <Leader>r :source $MYVIMRC<CR>
Paul Gessler
fonte
2
Atalho: :so $MYVIMRC.
Kenorb
@kenorb: eu adicionei essa possibilidade; obrigado por mencionar!
Paul Gessler
:so $m<Tab> ← extra-atalho
Aaron Thoma 31/05
3
Salve mais duas teclas com :so %. %está definido para o nome do arquivo atual do buffer que você editar, neste caso$MYVIMRC
cbaumhardt
11
De longe, a maneira mais fácil de fazer isso é recarregar automaticamente o vimrc ao salvar - verifique as outras respostas.
Tom Hale #
20

Se você quiser apenas recarregar o arquivo de vez em quando

:source $MYVIMRC

como Paulo escreveu está correto. Se você acabar alterando seu vimrc frequentemente, poderá adicionar algo assim ao seu arquivo vimrc:

autocmd BufWritePost .vimrc,_vimrc source $MYVIMRC

Isso recarregará o arquivo quando você o escrever (a partir dessa sessão do vim)

johannes
fonte
11
johannes: Precisamos editar o arquivo .vimrc através do vim para que este comando origine automaticamente o arquivo?
Sai Manoj Kumar Yadlapati
5
note que um arquivo vimrc também pode ser chamado de outras coisas: por exemplo, vimrc (se estiver em ~ / .vim).
user50136
11
@SaiManojKumarYadlapati Sim, o AS disse que esta deve ser a mesma sessão do vom. Bufwritepost é acionado quando vom faz a gravação
Johannes
Problemas com isso: (1) não funciona .vim/vimrc, (2) cria autocmds duplicados, portanto, cada salvamento subsequente será mais lento, pois o arquivo será recarregado várias vezes, (3) não se comporta com o vim-tiny, o que não acontece possui autocmd e ainda é o padrão em algumas distribuições linux. Veja minha resposta para resolver esses problemas.
Tom Hale
2
" Quickly edit/reload this configuration file
nnoremap gev :e $MYVIMRC<CR>
nnoremap gsv :so $MYVIMRC<CR>

Para recarregar automaticamente ao 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 o seu vimrc, ele será recarregado automaticamente.

Recursos:

  • Informa ao usuário o que aconteceu (também fazendo login :messages)
  • Manipula vários nomes para os arquivos de configuração
  • Garante que ele corresponda apenas ao arquivo de configuração real (ignora cópias em outros diretórios ou um fugitive://diff)
  • Não gerará um erro se estiver usando vim-tiny

Obviamente, a recarga automática só acontecerá se você editar seu vimrcin vim.

Tom Hale
fonte