Emacs: Öffnen und Abspielen einer Videodatei


9

Wenn ich mein Dateisystem im Dired-Modus erkunde und beispielsweise auf eine Videodatei stoße, wäre es schön, diese Videodatei abspielen zu können. Wie kann ich das in Emacs machen?

Ich kann Emacs verwenden, um eine Videodatei zu öffnen, aber das Ergebnis ist nicht sehr nützlich - ich bekomme nur die codierte Datei als Text angezeigt. Gibt es eine Möglichkeit, wie die Emacs Videodateien abspielen oder sie mit einem Befehl verknüpfen können, bei dem ein anderes Programm wie vlc die Datei abspielt?


2
Vielleicht kann diese Antwort helfen
Nsukami _

Antworten:


6

Unter Linux mache ich das die ganze Zeit. Halten Sie im diredModus den Cursor auf die Datei, die Sie ansehen möchten.

Geben Sie ein !, gefolgt von dem Programm, das Sie verwenden möchten.

Ich benutze mplayer, also tippe ich:

!mplayer

Und das ist es. Sie können genauso gut vlc verwenden oder was auch immer auf Ihrer Plattform funktioniert:

!vlc

Was mit dired wirklich gut ist, ist, dass ich ein Fenster mit der mplayer-Ausgabe bekomme (was ich nicht bekomme, wenn ich mit einem Datei-Editor wie nautilusoder thunarmit der rechten Maustaste klicke und die Datei mit mplayer anstarren lasse).

Auf jeden Fall sind keine Makros oder Erweiterungen erforderlich. Gerade ...!


Verwenden &Sie es, um es asynchron zu tun, zB: &vlc- Sie erhalten Ihre Emacs zurück, ohne den Shell-Befehl schließen zu müssen
Darshan Chaudhary

@DarshanChaudhary &vlcscheint nicht zu funktionieren, vlc&tut es aber .
otyn

2

Dired + hilft dabei, aber auch Vanilla Dired bietet die Grundlagen für das, was Sie brauchen.

Diese Antwort zeigt Ihnen im Detail, wie. Es wird erläutert, wie Sie mit einem externen Programm auf eine Datei zugreifen können, obwohl die Frage, auf die es antwortet, nur die Verwendung eines externen PDF-Viewers zum Anzeigen von PDF-Dateien betrifft.

Die Antwort hängt in gewissem Maße auch davon ab, welche Plattform Sie verwenden. Insbesondere wenn Sie MS Windows verwenden, können Sie die Vorteile von Windows-Dateizuordnungen usw. nutzen.


2

Ich habe mein VLC-Setup in diesem Beitrag beschrieben . Das wirklich Coole daran ist, dass der untergeordnete Prozess nicht mehr unterstützt wird nohup, sodass Sie Emacs sicher neu starten oder schließen können, ohne dass VLC automatisch geschlossen wird.

Hier ist der Code:

(require 'dired-aux)
(defvar dired-filelist-cmd
  '(("vlc" "-L")))
(defun dired-start-process (cmd &optional file-list)
  (interactive
   (let ((files (dired-get-marked-files
                 t current-prefix-arg)))
     (list
      (dired-read-shell-command "& on %s: "
                                current-prefix-arg files)
      files)))
  (let (list-switch)
    (start-process
     cmd nil shell-file-name
     shell-command-switch
     (format
      "nohup 1>/dev/null 2>/dev/null %s \"%s\""
      (if (and (> (length file-list) 1)
               (setq list-switch
                     (cadr (assoc cmd dired-filelist-cmd))))
          (format "%s %s" cmd list-switch)
        cmd)
      (mapconcat #'expand-file-name file-list "\" \"")))))

(define-key dired-mode-map "r" 'dired-start-process)

Eine andere Sache, die der Code macht, ist, dass er es ermöglicht, mehrere Dateien mit zu markieren mund sie dann alle in eine VLC-Wiedergabeliste zu stellen.


0

Das folgende Snippet funktioniert unter einem OSX-Betriebssystem nur für eine Datei, auf der sich der Cursor gerade befindet. Der Code bietet keine Möglichkeit, die Dateierweiterung zu überprüfen und / oder die richtige Anwendung zu erraten, die der Dateierweiterung entspricht:

(start-process
  "my-process-name" ;; process name
  nil ;; buffer output name, if an output buffer is so desired.
  "open" ;; argument 1
  "-a" ;; argument 2
  "/Applications/VLC.app/Contents/MacOS/VLC" ;; argument 3
  (dired-get-file-for-visit)) ;; argument 4

Wenn das Originalposter das Öffnen mehrerer markierter Dateien behandeln soll, verwenden Sie die Liste dired-get-marked-filesund gehen mapcarSie die Liste durch.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.