Zwykle pracuję na plikach, które są aktualizowane w systemie plików za pomocą kontroli wersji. Jaki jest szybki sposób na ponowne załadowanie pliku bez konieczności ponownego ładowania pliku C-x C-f
i pytania, czy chcę go ponownie załadować?
files
revert-buffer
Fernando Briano
źródło
źródło
misc-cmds.el
. Nie chodzi o to, że jest to skomplikowane, ale kiedy kopiujesz coś dokładnie , powszechną uprzejmością jest wskazanie źródła.(revert-buffer t (not (buffer-modified-p)) t)
.Jest też to,
auto-revert-mode
co robi to automatycznie i przekazuje informacje zwrotne.Z ciągu dokumentów:
źródło
Inna opcja, z której korzystam, jest
find-alternate-file
związanaC-x C-v
. Spowoduje to otwarcie pliku przy użyciu bieżącego bufora.Domyślnie wskazuje plik, w którym aktualnie się znajdujesz, więc możesz po prostu wpisać,
C-x C-v RET
aby ponownie załadować plik. Nie wyświetli monitu, chyba że bufor zawiera niezapisane dane.Niektóre tryby nietekstowe, takie jak
image-mode
(używane do renderowania zdjęć, plików PDF, plików svg ... itd.), Idired
mająrevert-buffer
nag
celu szybszy dostęp.źródło
C-x C-v
.Emacs nazywa to
reverting
.Możesz przywrócić bieżący plik za pomocą
M-x revert-buffer
. To monituje o potwierdzenie, czy plik został zmodyfikowany, czy nie, z wyjątkiem plików pasujących do wzorów wymienionych w zmiennejrevert-without-query
(szczegółowe informacje można znaleźć w instrukcji). Inną sporadyczną uciążliwościąrevert-buffer
jest to, że resetuje tryb plików do domyślnych.Korzystam z następującej funkcji, aby przywrócić wiązkę plików podaną według nazwy. Jeśli plik nie zostanie otwarty w jakimś buforze, zostanie zignorowany.
Typowym przypadkiem użycia tej funkcji jest po zaktualizowaniu plików z kontroli wersji. Służy
emacsclient
do wywoływaniarevert-files
wszystkich plików, które zostały zaktualizowane, lub (jest to łatwiejsze i tylko nieco wolniejsze) dla wszystkich plików objętych aktualizacją. Wywołuję następujący skrypt powłoki, przekazując mu pliki jako argumenty:Przykład użycia:
źródło
możesz także włączyć tryb globalnego automatycznego przywracania, jak pokazano poniżej
(global-auto-revert-mode 1)
jest to pomocne, gdy wykonujesz wiele kontroli plików js z włączonym trybem automatycznej naprawy, np. w jssc.
źródło
revert-buffer
jest tu. Ale lubię mieć jakieś opinie.Mam w sobie następujące
.emacs
.źródło
Możesz użyć
find-alternate-file
, który jest C-x C-vdomyślnie związany, i po prostu wpisać RETw wierszu polecenia, aby ponownie załadować plik.źródło
Dla użytkowników spacemacs:
SPC b R
(spacemacs/safe-revert-buffer
).Aby pominąć potwierdzenie, inne odpowiedzi już to obejmują, chociaż zgadzam się z innymi, że prawdopodobnie nie jest dobrym pomysłem powiązanie tego z kluczem.
źródło
Magit automatycznie zarządza odwracaniem plików, rozwiązując w ten sposób główny problem. Korzystasz również z jego innych funkcji.
Oto dokumenty dotyczące dostosowywania ustawień, które Cię interesują:
Jeśli pozostaniesz przy Magit, pamiętaj, aby włączyć wszystkie 3 globalne tryby WIP (Work In Progress), aby uniknąć utraty pracy.
W ten sposób możesz wykonywać akcje kontroli wersji w Emacsie za pomocą Magit i całkowicie unikać pierwotnego problemu.
źródło