Chcę edytować .vimrc
plik z Vima i zastosować je bez ponownego uruchamiania Vima.
Odpowiedzi:
Tak, po prostu użyj :so %
polecenia podczas edycji pliku .vimrc.
Jeśli chcesz, aby vim automatycznie przeładował twoją konfigurację, musisz dodać następujące polecenia:
augroup myvimrchooks
au!
autocmd bufwritepost .vimrc source $MYVIMRC
augroup END
grupowanie autokomendy jest tutaj, aby uniknąć "wykładniczego" przeładowywania, jeśli zapiszesz konfigurację kilka razy.
Function Inc already exist, add ! to replace it
.
autocmd! bufwritepost .vimrc source ~/.vimrc
? Nawet jeśli z jakiegoś powodu grupa jest potrzebna, nie można pominąć wiersza 2, jeśli wiersz 3 zostanie przepisany na początek autocmd!
?
Oto wersja bardziej kompatybilna z różnymi platformami, jeśli używasz systemu Mac / Windows / Linux i gvimrc
:
augroup myvimrc
au!
au BufWritePost .vimrc,_vimrc,vimrc,.gvimrc,_gvimrc,gvimrc so $MYVIMRC | if has('gui_running') | so $MYGVIMRC | endif
augroup END
Autocmd obserwuje wszystkie potencjalne *vimrc
pliki, a po zmianie wczytuje vimrc
plik, a następnie, gvimrc
jeśli GUI jest uruchomiony.
:help gvimrc
$GVIMRC
istnieje, bo czasami tak nie jest. if has('gui_running') && filereadable($MYGVIMRC)
au BufWritePost $MYVIMRC
lub au BufWritePost $MYVIMRC,$MYGVIMRC
?
" Quickly edit/reload this configuration file
nnoremap gev :e $MYVIMRC<CR>
nnoremap gsv :so $MYVIMRC<CR>
Aby automatycznie załadować ponownie po zapisaniu, dodaj następujące elementy do $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
a potem ostatni raz wpisz:
:so %
Następnym razem, gdy zapiszesz vimrc
, zostanie automatycznie ponownie załadowany.
Funkcje:
:messages
)fugitive://
różnicę)vim-tiny
Oczywiście automatyczne przeładowanie nastąpi tylko wtedy, gdy edytujesz swój vimrc
plik w vimie.
vim
w którym edytuję $MYVIMRC
. Jeśli na przykład znajdują się w innym terminalu, nadal muszę ręcznie pobrać źródło $MYVIMRC
. Czy można to obejść?
vim
zapisuje plik. Może być możliwe monitorowanie czasu mtime w samym pliku, ale nie ma pewności, jak to zrobić bez odpytywania asynchronicznego.
gvimrc
lub jeśli twój plik ma nazwę_vimrc
lubvimrc
, lub jeśli edytujesz plik o nazwie.vimrc
w innym katalogu. Zobacz moją odpowiedź, aby rozwiązać te problemy.