Emacs: come aprire e riprodurre un file video


9

Se sto esplorando il mio file system in modalità Dired e mi imbatto in un file video, ad esempio, sarebbe bello poter riprodurre quel file video. Come posso farlo in Emacs?

Posso usare Emacs per aprire un file video, ma il risultato non è molto utile: ho appena visualizzato il file codificato come testo. Esiste un modo in cui Emacs può riprodurre file video o forse collegarlo a un comando che ha un altro programma come vlc riprodurre il file?


2
Forse, questa risposta può aiutare
Nsukami _

Risposte:


6

Su Linux lo faccio sempre. Mentre diredsei in modalità, posiziona il cursore sul file che vuoi guardare.

Digitare !, seguito dal programma che si desidera utilizzare.

Io uso mplayer, quindi scrivo:

!mplayer

E questo è tutto. Puoi anche usare vlc o qualunque cosa funzioni sulla tua piattaforma:

!vlc

La cosa veramente buona, usando dired, è che ottengo una finestra con l'output di mplayer (cosa che non ottengo se, con un editor di file come nautiluso thunar, faccio clic con il pulsante destro del mouse e richiedo di avviare il file con mplayer).

Comunque, non c'è bisogno di macro o estensioni. Appena ...!


utilizzare &per farlo asyncly, ad esempio: &vlc- avrai il tuo emacs di nuovo senza bisogno di chiudere il comando di shell
Darshan Chaudhary

@DarshanChaudhary &vlcnon sembra funzionare, ma vlc&funziona.
otyn

@otyn penso che Darshan significhi usare & invece di !. quindi quando il cursore si trova sul file desiderato, basta premere &e ciò lo eseguirà in modo asincrono a differenza !.
Kotakotakota

2

Dired + aiuta in questo, ma anche Vanilla Dired offre le basi di ciò di cui hai bisogno.

Questa risposta ti dice come, in dettaglio. Spiega come utilizzare qualsiasi programma esterno per accedere a qualsiasi file, anche se la domanda a cui risponde è solo sull'utilizzo di un visualizzatore PDF esterno per visualizzare i file PDF.

La risposta dipende anche in parte dalla piattaforma utilizzata. In particolare, se si utilizza MS Windows, è possibile sfruttare le associazioni di file di Windows, ecc.


2

Ho descritto la mia configurazione VLC in questo post . La cosa davvero interessante è che il processo figlio viene ignorato nohup, quindi puoi riavviare o chiudere Emacs in sicurezza senza che VLC si chiuda automaticamente.

Ecco il codice:

(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)

Un'altra cosa che il codice fa è che consente di contrassegnare diversi file me quindi accodarli tutti in una playlist VLC.


0

Il frammento seguente funzionerà su un sistema operativo OSX per un solo file in cui si trova attualmente il cursore - il codice non prevede l'esame dell'estensione del file e / o l'indovinare l'applicazione corretta che corrisponde all'estensione del file:

(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

Se il poster originale desidera occuparsi dell'apertura di più file contrassegnati, utilizzare dired-get-marked-filese mapcarscorrere l'elenco.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.