Ich sehe viele Leute, die animierte GIFs veröffentlichen, in denen Emacs-Features gezeigt werden, aber ich habe noch keinen schönen Durchgang bei der Erstellung eines GIFs gesehen. Gibt es einen Code, der versucht, die Keyframes des GIF mit den Tastendrücken in Emacs zu verknüpfen? Gibt es elisp-Pakete oder -Funktionen, um den Prozess zu automatisieren? Ich würde gerne in der Lage sein, eine Taste zu drücken, um die Aufnahme zu starten, erneut zu drücken, um sie zu stoppen, und nach einem Dateinamen zu fragen, unter dem das GIF gespeichert werden soll.
Verwandte Frage, gibt es ein Paket für die Aufnahme längerer Screencasts aus Emacs?
images
screencast
dgtized
quelle
quelle
Antworten:
Ja, es gibt ein Paket für die Aufzeichnung von Screencasts in Emacs, das heißt
camcorder.el
Ich kann noch nichts versprechen, da ich es nur auf meinem Computer getestet habe, aber ich kann Ihnen sagen, dass es für mich funktioniert. :-)
M-x camcorder-record
.F12
und warten Sie, bis die Konvertierung abgeschlossen ist.Screencasts können in jedem Format erstellt werden, das vom Befehl
imagemagick
's verstanden wirdconvert
. Sie können die Aufnahme sogar mit pausierenF11
!Wenn Sie ohne Popup-Frame aufnehmen möchten, verwenden Sie
M-x camcorder-mode
.Abhängigkeiten
camcorder.el
Verwendet für die Aufnahme die folgenden Linux-Dienstprogramme. Wenn Sie diese haben, sollte es sofort funktionieren. Wenn Sie etwas anderes verwenden, sollten Sie dennoch in der Lage sein, es durch Konfigurieren dercamcorder-recording-command
Variablen zum Laufen zu bringen .Fehlerbehebung
Auf meinem Computer bemerkte ich, dass sich der Emacs mit der Fenster-ID meldete
unterschied sich von der ID, die das WM mit dem
wminfo
Dienstprogramm meldete .Ich habe die Variable hinzugefügt, um das
camcorder-window-id-offset
zu korrigieren. Der Standardwert ist-4
, aber Sie müssen ihn möglicherweise erhöhen oder verringern, damit diese beiden Zahlen übereinstimmen.quelle
xwininfo
die richtige ID ermittelt (wminfo
auf meinem System ist keine vorhanden).outer-window-id
(anstelle vonwindow-id
) verwendet werden und es keinen Offset mehr gibt, aber diese Änderung ist noch nicht auf melpa-stable gelandet.Ich habe eine ähnliche Frage zu / r / Emacs gestellt .
Für die Aufnahme von GIFs stehen folgende Hauptoptionen zur Verfügung:
Um Tastatureingaben anzuzeigen, benötigen Sie lediglich eine Anwendung, die Tastatureingaben anzeigt. key-mon stellt hierfür eine GUI-App zur Verfügung. Es gibt natürlich einen Emacs-Modus zum Anzeigen der gedrückten Tasten: Befehlsprotokoll-Modus .
quelle
Ich habe Byzanz verwendet , um alle meine GIFs zu generieren. Ich nehme mit einem Bildschirm auf, um den
byzanz
Befehl auszuführen , einer für die Aufnahme. Einige Beispiele sind in meinem Führer hier .quelle
Ich habe Byzanz benutzt , um Gifs aufzunehmen
Installiere es zuerst und füge dieses Snippet in rr (record region) in deinen $ PATH ein:
und dies in rw (record window) in deinen $ PATH:
Jetzt können Sie mit rr und rw Region / Fenster in Gifs aufnehmen (Sie können die Zeit und Position für Ihre Bedürfnisse ändern.)
quelle
Eine weitere Option mit QuickTime-Player (funktioniert unter OSX, ich weiß nicht, unter Windows). Voraussetzungen sind:
ffmpeg
undgifsicle
ffmpeg -i yourscreen.mov -s 600x400 -pix_fmt rgb24 -r 10 -f gif - | gifsicle --optimize=3 --delay=3 > out.gif
quelle