Edytuję plik HTML w Vimie i chcę, aby przeglądarka odświeżyła się, gdy zmieni się plik pod spodem.
Czy istnieje wtyczka do przeglądarki Google Chrome, która nasłuchuje zmian w pliku i automatycznie odświeża stronę za każdym razem, gdy zapiszę zmianę w pliku? Wiem, że istnieje XRefresh dla przeglądarki Firefox, ale w ogóle nie udało mi się uruchomić XRefresh.
Jak trudno byłoby napisać scenariusz, który zrobi to sam?
vim
google-chrome
automation
Kevin Burke
źródło
źródło
Odpowiedzi:
Zakładam, że nie używasz OSX? W przeciwnym razie możesz zrobić coś takiego za pomocą applecript:
http://brettterpstra.com/watch-for-file-changes-and-refresh-your-browser-automatically/
Dostępna jest również wtyczka do przeglądarki Chrome o nazwie „automatyczne odświeżanie plus”, w której możesz określić ponowne ładowanie co x sekund:
https://chrome.google.com/webstore/detail/auto-refresh-plus/oilipfekkmncanaajkapbpancpelijih?hl=en
źródło
keyword
sięwatch_keyword
w następnym wierszu:if (URL of atab contains "#{keyword}") then
Czyste rozwiązanie JavaScript!
Live.js
Po prostu dodaj do swojego
<head>
:Skopiowałem tę odpowiedź prawie dosłownie stąd , ponieważ myślę, że jest łatwiejsza i bardziej ogólna niż obecnie akceptowana odpowiedź tutaj.
źródło
php -S localhost:8080
python3 -m http.server
, a także wiele innych, dla innych języków / narzędzi .Aktualizacja : Tincr nie żyje.
Tincr to rozszerzenie przeglądarki Chrome, które odświeża stronę po każdej zmianie pliku pod spodem.
źródło
Handy Bash jednowierszowy dla OS X, zakładając, że masz zainstalowaną fswatch (
brew install fswatch
). Obserwuje dowolną ścieżkę / plik i odświeża aktywną kartę Chrome, gdy są zmiany:Zobacz więcej o fswatch tutaj: https://stackoverflow.com/a/13807906/3510611
źródło
Dodając pojedynczy metatag do dokumentu, możesz poinstruować przeglądarkę, aby automatycznie ładowała się ponownie w określonych odstępach czasu:
Umieszczony w tagu head dokumentu, ten metatag poinstruuje przeglądarkę, aby odświeżała się co trzy sekundy.
źródło
http://livereload.com/ - natywna aplikacja dla OS X, wersja Alpha dla Windows. Open source dostępny pod adresem https://github.com/livereload/LiveReload2
źródło
Użyj Gulp, aby obejrzeć pliki i Browsersync, aby ponownie załadować przeglądarkę.
Kroki są następujące:
W linii poleceń wykonaj
Utwórz plik gulpfile.js z następującą zawartością:
Biegać
Edytuj kod HTML, zapisz i zobacz, jak Twoja przeglądarka ładuje się ponownie. Magia jest wykonywana poprzez wstrzykiwanie w locie specjalnego tagu do plików HTML.
źródło
Wiem, że to stare pytanie, ale jeśli komuś pomoże, istnieje pakiet reload npm, który go rozwiązuje.
W przypadku, gdy nie uruchamiasz go na serwerze lub otrzymałeś błąd
Live.js doesn't support the file protocol. It needs http.
Po prostu zainstaluj:
a następnie w katalogu index.html uruchom:
Uruchomi serwer, który będzie odświeżany za każdym razem, gdy zapiszesz zmiany.
Istnieje wiele innych opcji na wypadek, gdybyś uruchomił go na serwerze lub cokolwiek innego. Sprawdź referencję, aby uzyskać więcej informacji!
źródło
Rozszerzenie LivePage dla Chrome można łatwo ustawić tak, aby monitorowało zmiany w plikach lokalnych.
źródło
Istnieje aplikacja java dla OS X i Chrome o nazwie Refreschro. Będzie monitorować określony zestaw plików w lokalnym systemie plików i ponownie ładować Chrome po wykryciu zmiany:
http://neromi.com/refreschro/
źródło
Jeśli korzystasz z systemu GNU / Linux, możesz użyć całkiem fajnej przeglądarki o nazwie Falkon . Jest oparty na Qt WebEngine . Działa podobnie jak Firefox czy Chromium - z wyjątkiem tego, że automatycznie odświeża stronę po zaktualizowaniu pliku. Automatyczne odświeżanie nie ma większego znaczenia, czy używasz vim, nano, czy atom, vscode, nawiasów, geany, podkładki pod mysz itp.
W Arch Linux możesz łatwo zainstalować Falkon:
Oto pakiet przystawek.
źródło
Szybkim rozwiązaniem, którego czasami używam, jest podzielenie ekranu na dwie części i za każdym razem, gdy zostanie wprowadzona zmiana, kliknij dokument xD.
źródło
W node.js możesz połączyć primus.js (websockets) z gulp.js + gulp-watch (odpowiednio runner zadań i change listener), dzięki czemu gulp poinformuje okno przeglądarki, że powinno się odświeżyć za każdym razem, gdy html, js itp. zmień. To jest agnostyk systemu operacyjnego i mam go w lokalnym projekcie.
Tutaj strona jest obsługiwana przez Twój serwer sieciowy, a nie jest ładowana jako plik z dysku, co w rzeczywistości bardziej przypomina rzeczywistą.
źródło
To działa dla mnie (w Ubuntu):
Może być konieczne zainstalowanie pakietów inotify i xdotool (
sudo apt-get install inotify-tools xdotool
w systemie Ubuntu) oraz zmiana argumentów--class
na rzeczywiste nazwy preferowanej przeglądarki i terminala.Uruchom skrypt zgodnie z opisem i po prostu otwórz plik index.html w przeglądarce. Po każdym zapisie w vimie skrypt skupi się na oknie przeglądarki, odświeży je, a następnie wróci do terminala.
źródło
xdotool search --name 127.0.0.1 windowactivate key F5
do pracy na localhost (127.0. 0.1) tylko oczywiście. Teraz muszę to ponownie podłączyć do skryptu.Najbardziej elastycznym rozwiązaniem, jakie znalazłem, jest rozszerzenie Chrome LiveReload w połączeniu z serwerem guard .
Obejrzyj wszystkie pliki w projekcie lub tylko te, które określisz. Oto przykładowa konfiguracja Guardfile:
Wadą jest to, że musisz to ustawić dla każdego projektu i dobrze jest, jeśli znasz ruby.
Użyłem również rozszerzenia Chrome Tincr - ale wydaje się, że jest ściśle powiązane z ramami i strukturami plików. (Próbowałem okablować tincr dla projektu Jekyll, ale pozwoliło mi to tylko na oglądanie pojedynczego pliku pod kątem zmian, nie licząc dołączeń, częściowych lub zmian układu). Jednak Tincr działa świetnie po wyjęciu z pudełka z projektami takimi jak szyny, które mają spójne i predefiniowane struktury plików.
Tincr byłby świetnym rozwiązaniem, gdyby pozwalał na wszystkie wzorce dopasowania do ponownego wczytywania, ale projekt jest nadal ograniczony pod względem zestawu funkcji.
źródło
Można to zrobić za pomocą prostego skryptu w języku Python.
Pełne szczegóły można znaleźć tutaj .
źródło
Na podstawie odpowiedzi attekei dla OSX:
Wrzuć to wszystko do
reload.scpt
:Spowoduje to ponowne załadowanie pierwszej znalezionej karty, która zaczyna się
file://
i kończy na pierwszym argumencie wiersza poleceń. Możesz go dostosować według potrzeb.Wreszcie zrób coś takiego.
fswatch -o
wyświetla liczbę plików, które uległy zmianie w każdym zdarzeniu zmiany, po jednym w wierszu. Zwykle wystarczy wydrukować1
.xargs
czyta te1
pliki i-n1
oznacza, że przekazuje je jako argument do nowego wykonaniaosascript
(gdzie zostanie zignorowany).źródło
tab.title.includes(argv[0])
jako warunku, mogę dopasować tytuł strony, który może być mniej skomplikowany niż adres URL i działa, gdy używam lokalnego serwera zamiast file: //.Zainstaluj i skonfiguruj
chromix
Teraz dodaj to do swojego
.vimrc
zmień port na używany
źródło
Zapisz ten kod w pliku livereload.js i dołącz go na dole skryptu HTML w następujący sposób:
To spowoduje odświeżenie strony co 100 mili-sekund. Wszelkie zmiany wprowadzone w kodzie są natychmiast widoczne dla oczu.
źródło
Ok, oto moje proste rozwiązanie Auto Hotkey (w systemie Linux wypróbuj Auto Key ). Po naciśnięciu skrótu klawiaturowego zapisywania aktywuj przeglądarkę, kliknij przycisk odświeżania , a następnie przełącz się z powrotem do edytora. Jestem po prostu zmęczony uruchamianiem innych rozwiązań. Nie zadziała, jeśli Twój edytor obsługuje automatyczne zapisywanie.
źródło
Rozwiązanie offline przy użyciu języka R
Ten kod:
powoduje odświeżenie przeglądarki za każdym razem, gdy zmiana jest zapisywana w pliku .html.
Podobne rozwiązania istnieją dla Pythona itp.
źródło
Dodaj to do swojego kodu HTML
Podczas edycji strona przeglądarki jest zamazana, po przełączeniu się z powrotem, aby na nią spojrzeć, uruchamiane jest zdarzenie fokusu i strona ponownie się ładuje.
źródło
następnie po prostu wprowadź katalog, który chcesz monitorować, wykonaj "watch_refresh_chrome"
źródło