vim을 다시 시작하지 않고 .vimrc 파일을 어떻게 다시로드합니까?


534

.vimrcVim을 다시 시작하지 않고도 파일 을 편집 하고 다시로드 할 수 있습니까 ?

답변:


661

편집중인 경우 다음을 사용하여 다시로드 할 수 있습니다.

:so %

%현재 파일 이름 (참조를 의미 :h current-file)와 :so대한 짧은 :source지정된 파일의 내용을 읽고 빔 코드로 취급한다.

일반적으로 현재 활성화 된 .vimrc를 다시로드하려면 다음을 사용하십시오 ( Daily Vim 참조 ).

:so $MYVIMRC


36
그리고 :so ~/.vimrc유닉스에서도 작동합니다
Yab

3
: 그래서 ~ / _vimrc는 Windows에서 작동합니다. 물론, _vimrc를 Windows 홈 디렉토리에 보관하지 않으면 작동하지 않습니다. Vim이 홈 디렉토리를 고려한 내용을 보려면을 사용하십시오 :echo expand("~").
Daniel Miladinov

3
키보드 매핑이 이미 적용된 경우 새 vimrc에서 삭제 된 경우에도 키보드 매핑이 지워지지 않습니다.
Phani

또는 :so ~/.vim/gvimrc또는 물론 넣어 어디든지
NeilG

79

또한 Vim을 구성하여 변경 사항을 확인 .vimrc하고 구성을 자동으로 다시로드하도록 구성하십시오.

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

출처 : 이 답변은 SO에

참고 :이 특정 방법은 GUI Vim, Windows Vim 등과 호환되도록 Vim 구성 파일 이름의 많은 변형을 감시합니다.


2
이 방법은 얼마나 성능이 좋습니까?
Alexej Magura

이런 종류의 명령을 사용하면 때로는 몇 초 이상 내 nvim이 중단되는 것을 알 수 있습니다.
jdhao

11

키 매핑

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

완전 자동화 된 솔루션

저장시 자동으로 다시로드 하려면 다음을 추가하십시오 $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

마지막으로 다음을 입력하십시오.

:so %

다음에를 저장하면 vimrc자동으로 다시로드됩니다.

풍모:

  • (또한 로깅 무슨 일이 일어 났는지를 사용자에게 알려줍니다 :messages)
  • 구성 파일의 다양한 이름을 처리합니다.
  • 실제 구성 파일과 만 일치하도록합니다 (다른 디렉토리의 사본 또는 fugitive://diff 는 무시 )
  • 사용하면 오류가 발생하지 않습니다 vim-tiny

물론 자동 재로드는 vimrcvim 을 편집하는 경우에만 발생합니다 .


5

기억 / 입력의 대안 :so $MYVIMRC은 이러한 매핑입니다. vimrc ( ev) 또는 소스 vimrc ( sv) 를 빠르게 편집 할 수 있습니다 .

" Quickly open/reload vim
nnoremap <leader>ev :split $MYVIMRC<CR>  
nnoremap <leader>sv :source $MYVIMRC<CR>     
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.