Widzę wielu ludzi, którzy publikują animowane pliki GIF, pokazując funkcje Emacsa, ale nie widziałem przyjemnego przejścia przez tworzenie takiego. Czy jest jakiś kod, który próbuje połączyć klatki kluczowe gif z naciśnięciami klawiszy w Emacsie? Czy są jakieś pakiety lub funkcje elisp do automatyzacji procesu? Chciałbym móc nacisnąć klawisz, aby rozpocząć nagrywanie, nacisnąć go ponownie, aby zatrzymać, i poprosić o podanie nazwy pliku, aby zapisać gif.
Powiązane pytanie: czy istnieje pakiet do nagrywania dłuższych screencastów z poziomu Emacsa?
images
screencast
zdeterminowany
źródło
źródło
Odpowiedzi:
Tak, nazywa się pakiet do nagrywania screencastów w Emacsie
camcorder.el
Nie mogę jeszcze nic obiecać, ponieważ przetestowałem to tylko na komputerze, ale mogę powiedzieć, że działa dla mnie. :-)
M-x camcorder-record
.F12
i poczekaj na zakończenie konwersji.Screencasty mogą być generowane w dowolnym formacie zrozumiałym
imagemagick
„sconvert
polecenia. Możesz nawet zatrzymać nagrywanie za pomocąF11
!Jeśli chcesz nagrywać bez wyskakującej ramki, użyj
M-x camcorder-mode
.Zależności
Do nagrywania
camcorder.el
używa następujących narzędzi linux. Jeśli je masz, powinno działać od razu po wyjęciu z pudełka. Jeśli używasz czegoś innego, nadal powinieneś być w stanie sprawić, by działało, konfigurująccamcorder-recording-command
zmienną.Rozwiązywanie problemów
Na moim komputerze zauważyłem, że identyfikator okna Emacs zgłosił
różniło się od identyfikatora, który WM zgłosił z
wminfo
narzędzia.Dodałem zmienną,
camcorder-window-id-offset
aby to poprawić. Wartość domyślna to-4
, ale może być konieczne zwiększenie lub zmniejszenie tej wartości, aby te dwie liczby pasowały do siebie.źródło
xwininfo
ustalałem właściwy identyfikator do użycia (nie mam gowminfo
w systemie).outer-window-id
(zamiastwindow-id
) i nie ma już potrzeby przesunięcia, ale ta zmiana nie wylądowała jeszcze na stabilnej melpie.Podobne pytanie zamieściłem na / r / Emacs .
Do nagrywania plików GIF główne opcje to:
Aby wyświetlać naciśnięcia klawiszy, wystarczy aplikacja, która pokazuje naciśnięcia klawiszy. key-mon zapewnia w tym celu aplikację GUI. Istnieje oczywiście tryb Emacsa do wyświetlania naciśniętych klawiszy: tryb dziennika poleceń .
źródło
Użyłem Byzanz do wygenerowania wszystkich moich GIF-ów. Nagrywam za pomocą jednego ekranu, aby uruchomić
byzanz
polecenie, jednego do nagrywania. Niektóre przykłady znajdują się w moim przewodniku tutaj .źródło
Użyłem Byzanz do nagrywania gifów
Zainstaluj go najpierw, umieść ten fragment kodu w rr (region nagrania) w ścieżce $ PATH:
a to do rw (okno nagrywania) do twojej $ PATH:
Teraz możesz użyć rr i rw, aby nagrać region / okno do gifów (możesz zmienić czas i pozycję dla swoich potrzeb).
źródło
Jeszcze jedna opcja za pomocą odtwarzacza QuickTime (działa na OSX, nie wiem na Windows). Wymagane są:
ffmpeg
igifsicle
ffmpeg -i yourscreen.mov -s 600x400 -pix_fmt rgb24 -r 10 -f gif - | gifsicle --optimize=3 --delay=3 > out.gif
źródło