Załaduj ponownie .vimrc w Vimie bez restartu

93

Niepokoi mnie to, gdy coś napisałem, .vimrci muszę go najpierw zamknąć i otworzyć, aby zastosować zmiany. Czy istnieje sposób przeładowania .vimrcw Vimie bez jego zamykania?

Np Dodałem set nudo ~/.vimrci chcę numery linii do stawienia się do wszystkich moich okien i buforów.

Nemoden
źródło

Odpowiedzi:

129

:source ~/.vimrc

Uruchom to od wewnątrz vima, który zastosuje twój .vimrc

Na przemian

:source $MYVIMRC

wolno-myśliciel
źródło
18

Oto jeden dla potomności. Dodaj następujące elementy do pliku .vimrc:

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

Pierwszy wiersz oznacza, że ​​możesz otworzyć vimrc z dowolnego bufora vim, wpisując lidera, a następnie pisząc „vimrc”. Na przykład mój lider jest ustawiony na przecinek, więc jeśli jestem w trybie edycji i wpisuję „, vimrc”, otworzy mój vimrc w nowej karcie.

Druga linia automatycznie pobiera zmiany w twoim vimrc po jego zapisaniu i zamknięciu. To magia.

Dziekan
źródło
1
Idealnie nie map <leader>vimrc :tabe $MYVIMRC<cr>pasowałbyś do autocmd?
Nick Bisby,
@NickBisby Dla mnie ~/.vimrcto tylko kod źródłowy, dzięki któremu ~/.vim/.vimrcmogę mieć wszystko pod kontrolą źródła. Dla większości ludzi masz rację :tabe $MYVIMRC<cr>.
Dziekan
1
Alternatywnie możesz użyć dowiązania symbolicznego do swojego rzeczywistego pliku .vimrc, zamiast mieć skrót.
Spoike 19.04.16
Jak mogę ponownie załadować vimrc bez zmiany pozycji mojego kursora?
SergioAraujo,
15

:so %

jeśli obecnie edytujesz .vimrc

storypixel
źródło
4
" Quickly edit/reload this configuration file
nnoremap gev :e $MYVIMRC<CR>
nnoremap gsv :so $MYVIMRC<CR>

Aby automatycznie ponownie załadować 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 następnie po raz ostatni wpisz:

:so %

Następnym razem, gdy zapiszesz vimrc, zostanie on automatycznie ponownie załadowany.

Cechy:

  • Informuje użytkownika o tym, co się stało (także loguje się do :messages)
  • Obsługuje różne nazwy plików konfiguracyjnych
  • Zapewnia, że ​​będzie pasował tylko do rzeczywistego pliku konfiguracyjnego (ignoruje kopie w innych katalogach lub plik fugitive://różnicowy)
  • Nie wygeneruje błędu, jeśli używasz vim-tiny

Oczywiście automatyczne przeładowanie nastąpi tylko wtedy, gdy edytujesz swój vimrcvim.

Tom Hale
źródło