Recarregar .vimrc no Vim sem reiniciar

93

Incomoda-me quando escrevi algo .vimrce tenho que fechá-lo primeiro e abrir para que minhas alterações sejam aplicadas. Existe uma maneira de recarregar .vimrcno Vim sem fechá-lo?

Por exemplo, eu adicionei set nua ~/.vimrce quero que os números de linha para aparecer para todas as minhas janelas e buffers.

Nemoden
fonte

Respostas:

129

:source ~/.vimrc

Execute isso de dentro do vim, que aplicará seu .vimrc

Alternadamente

:source $MYVIMRC

pensador livre
fonte
18

Aqui está um para a posteridade. Adicione o seguinte ao seu .vimrc:

map <leader>vimrc :tabe ~/.vim/.vimrc<cr>
autocmd bufwritepost .vimrc source $MYVIMRC

A primeira linha significa que você pode abrir o vimrc a partir de qualquer buffer do vim digitando seu líder e escrevendo "vimrc". Por exemplo, meu líder está definido como vírgula; portanto, se eu estiver no modo de edição e digitar ", vimrc", ele abrirá meu vimrc em uma nova guia.

A segunda linha gera automaticamente as alterações no seu vimrc quando você o salva e fecha. É Magica.

reitor
fonte
1
Idealmente, você não map <leader>vimrc :tabe $MYVIMRC<cr>combinaria com o autocmd?
precisa saber é o seguinte
@NickBisby Para mim, ~/.vimrcé apenas um esboço que fontes, ~/.vim/.vimrcpara que eu possa manter tudo sob controle de origem. Para a maioria das pessoas, você tem razão :tabe $MYVIMRC<cr>.
Dean
1
Como alternativa, você pode usar um link simbólico para o arquivo .vimrc real em vez de ser um esboço.
Spoike
Como recarregar o vimrc sem alterar a posição do meu cursor?
SergioAraujo
15

:so %

se estiver editando .vimrc no momento

storypixel
fonte
4
" 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