Emacs: cara membuka dan memutar file video

9

Jika saya menjelajahi sistem file saya dalam mode Dired dan saya menemukan file video, misalnya, akan lebih baik untuk dapat memutar file video itu. Bagaimana saya bisa melakukan ini di Emacs?

Saya dapat menggunakan Emacs untuk membuka file video, tetapi hasilnya tidak terlalu berguna - saya hanya mendapatkan file yang disandikan ditampilkan sebagai teks. Apakah ada cara Emacs dapat memutar file video, atau mungkin menautkannya ke perintah yang memiliki program lain seperti vlc memainkan file?

modulitos
sumber
2
Mungkin, jawaban ini dapat membantu
Nsukami _

Jawaban:

6

Di Linux saya melakukan ini sepanjang waktu. Saat dalam diredmode, minta kursor pada file yang ingin Anda tonton.

Ketik !, diikuti oleh program yang ingin Anda gunakan.

Saya menggunakan mplayer, jadi saya mengetik:

!mplayer

Dan itu saja. Anda bisa menggunakan vlc, atau apa pun yang berfungsi di platform Anda:

!vlc

Apa yang benar-benar baik, menggunakan dired, adalah bahwa saya mendapatkan jendela dengan output mplayer (yang tidak saya dapatkan jika, dengan editor file seperti nautilusatau thunar, saya klik kanan dan minta file untuk dilihat dengan mplayer).

Lagi pula, tidak perlu makro atau ekstensi. Hanya ...!

Karpov
sumber
gunakan &untuk melakukannya secara asyncly, misalnya: &vlc- Anda akan mendapatkan emacs Anda kembali tanpa perlu menutup perintah shell
Darshan Chaudhary
@DarshanChaudhary &vlctampaknya tidak berfungsi, tetapi vlc&tidak.
otyn
2

Dired + membantu dengan ini, tetapi bahkan vanilla Dired menawarkan dasar-dasar apa yang Anda butuhkan.

Jawaban ini memberi tahu Anda bagaimana, secara terperinci. Ini menjelaskan cara menggunakan program eksternal apa pun untuk mengakses file apa pun, meskipun pertanyaan yang dibalasnya hanya tentang menggunakan penampil PDF eksternal untuk melihat file PDF.

Jawabannya juga tergantung sampai batas tertentu pada platform apa yang Anda gunakan. Secara khusus, jika Anda menggunakan MS Windows maka Anda dapat memanfaatkan asosiasi file Windows dll.

Drew
sumber
2

Saya telah menjelaskan pengaturan VLC saya di posting ini . Apa yang benar-benar keren tentang hal itu adalah bahwa proses anak tidak diakui nohup, sehingga Anda dapat dengan aman memulai kembali atau menutup Emacs tanpa VLC secara otomatis ditutup.

Berikut kodenya:

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

Hal lain yang dilakukan kode adalah memungkinkan untuk menandai beberapa file dengan m, dan kemudian mengantri semuanya ke daftar putar VLC.

abo-abo
sumber
0

Cuplikan berikut ini akan berfungsi pada sistem operasi OSX hanya untuk satu file di mana kursor saat ini berada - kode tidak menyediakan untuk memeriksa ekstensi file dan / atau menebak aplikasi yang benar yang cocok dengan ekstensi 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

Jika poster asli ingin berurusan dengan membuka banyak file bertanda, gunakan dired-get-marked-filesdan mapcarturunkan daftar.

daftar hukum
sumber