Questão Recarregar .vimrc no Vim sem reiniciar


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

Por exemplo. eu já adicionei set nu para ~/.vimrc e quero que números de linha apareçam para todas as minhas janelas e buffers.


82


origem




Respostas:


:source ~/.vimrc

Corra isso de dentro do vim, isso vai aplicar o seu .vimrc

Alternadamente

:source $MYVIMRC


113





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 seu vimrc a partir de qualquer buffer vim, digitando seu líder, e então escrevendo "vimrc". Por exemplo, meu líder é definido como vírgula, então, se eu estiver no modo de edição e digitar "vimrc", ele abrirá meu vimrc em uma nova guia.

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


18



O ideal seria você map <leader>vimrc :tabe $MYVIMRC<cr> para combinar com o autocmd? - Nick Bisby
@NickBisby Para mim ~/.vimrc é apenas um esboço que fontes ~/.vim/.vimrc para que eu possa manter tudo sob controle de fonte. Para a maioria das pessoas você está correto, seria :tabe $MYVIMRC<cr>. - Dean
Alternativamente, você pode usar um link simbólico para o arquivo .vimrc real, em vez de ser um esboço. - Spoike
Como posso recarregar o vimrc sem alterar a posição do meu cursor? - SergioAraujo


:so %

se atualmente editando .vimrc


11





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

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.


4