Mam plik konfiguracyjny, który trzymam otwarty w vimie, ale czasem zmienia się on na dysku, a zmiany te nie są odzwierciedlane w terminalu. Czy mogę odświeżyć zawartość ekranu bez zamykania i ponownego otwierania pliku? Jeśli tak to jak?
362
Odpowiedzi:
Możesz użyć
:edit
polecenia, bez określania nazwy pliku, aby ponownie załadować bieżący plik. Jeśli dokonałeś modyfikacji pliku, możesz użyć:edit!
do wymuszenia przeładowania bieżącego pliku (stracisz swoje modyfikacje).Polecenie
:edit
może być skrócone przez:e
. W ten sposób można wymusić edycję:e!
źródło
:e!
.:edit
i:edit!
możesz używać:e
i:e!
odpowiednio.u
Ndo:e!
.:bufdo e
Oprócz ręcznego odświeżania pliku
:edit
, możesz umieścić go w swoim~/.vimrc
aby Vim automatycznie odświeżał wszystkie pliki, które nie były edytowane przez Vima. Zobacz także
:checktime
.źródło
git pull
pamiętasz, że możesz niezamierzenie utracić niezapisane zmiany na ekranie.gvim
poleceń zewnętrznych.:checktime
autoread
można uruchomić automatycznie X sekund po zatrzymaniu kursora, zobacz tę odpowiedź .TL; DR
Przejdź do
Wrap-up
nagłówkavimrc
linii, aby dodać, aby Twoje życie było lepsze.Ręcznie
Biegać
:checktime
Automatycznie
Aby automatycznie ładować zmiany, dodaj
vimrc
:set autoread
Ta odpowiedź dodaje zastrzeżenie:
Czytaj dalej, aby znaleźć rozwiązania.
Uruchom, gdy kursor przestanie się poruszać
Dodaj do
vimrc
:Domyślnie CursorHold jest uruchamiany po tym, jak kursor pozostaje nieruchomy przez 4 sekundy, i można go skonfigurować za pomocą aktualizacji .
Wyzwalaj przy zmianie bufora lub ustawieniu ostrości terminala
Dodaj następujące elementy do swojego
vimrc
wyzwalaczaautoread
podczas zmiany buforów w vimie:Łapanie okna terminalu skupia się na zwykłym vimie
Aby
FocusGained
(patrz wyżej) działać w zwykłym vimie, w emulatorze terminali (Xterm, tmux itp.) Zainstaluj wtyczkę: vim-tmux-focus-eventsW wersjach Tmux> 1.9 musisz dodać
.tmux.conf
:Zakończyć
Powiadomienia, gdy
autoread
możliwe są również wyzwalacze .Oto moje
vimrc
linie do wdrożenia wszystkich powyższych:Dzięki ErichBSchulz za skierowanie mnie we właściwym kierunku
au CursorHold
.źródło