Emacs: cách mở và phát tệp video


9

Ví dụ, nếu tôi đang khám phá hệ thống tệp của mình ở chế độ Dired và tôi bắt gặp một tệp video, thật tuyệt khi có thể phát tệp video đó. Làm thế nào tôi có thể làm điều này trong Emacs?

Tôi có thể sử dụng Emacs để mở tệp video, nhưng kết quả không hữu ích lắm - tôi chỉ nhận được tệp được mã hóa hiển thị dưới dạng văn bản. Có cách nào Emacs có thể phát các tệp video, hoặc có thể liên kết nó với một lệnh có chương trình khác như vlc phát tệp không?


2
Có lẽ, câu trả lời này có thể giúp
Nsukami _

Câu trả lời:


6

Trên Linux tôi làm điều này mọi lúc. Trong khi ở diredchế độ, có con trỏ trên tệp bạn muốn xem.

Nhập !, theo sau là chương trình bạn muốn sử dụng.

Tôi sử dụng mplayer, vì vậy tôi gõ:

!mplayer

Và đó là nó. Bạn cũng có thể sử dụng vlc hoặc bất cứ thứ gì hoạt động trên nền tảng của bạn:

!vlc

Có gì thực sự tốt, bằng cách sử dụng dired, là tôi nhận được một cửa sổ với sản lượng mplayer (mà tôi không nhận được nếu, với một trình soạn thảo tập tin như nautilushoặc thunar, tôi nhấp chuột phải và yêu cầu các tập tin được nhìn chằm chằm với mplayer).

Dù sao, không cần bất kỳ macro hoặc phần mở rộng. Chỉ ...!


sử dụng &để làm điều đó một cách không đồng bộ, ví dụ: &vlc- bạn sẽ lấy lại emacs của mình mà không cần phải đóng lệnh shell
Darshan Chaudhary

@DarshanChaudhary &vlcdường như không hoạt động, nhưng vlc&có.
otyn

2

Dired + giúp với điều này, nhưng ngay cả vanilla Dired cung cấp những điều cơ bản về những gì bạn cần.

Câu trả lời này cho bạn biết làm thế nào, chi tiết. Nó giải thích cách sử dụng bất kỳ chương trình bên ngoài nào để truy cập vào bất kỳ tệp nào, mặc dù câu hỏi mà nó trả lời chỉ là về việc sử dụng trình xem PDF bên ngoài để xem tệp PDF.

Câu trả lời cũng phụ thuộc vào một mức độ nào đó vào nền tảng bạn sử dụng. Đặc biệt, nếu bạn sử dụng MS Windows thì bạn có thể tận dụng các liên kết tệp Windows, v.v.


2

Tôi đã mô tả thiết lập VLC của tôi trong bài viết này . Điều thực sự thú vị là quy trình con bị từ chối nohup, vì vậy bạn có thể khởi động lại hoặc đóng Emacs một cách an toàn mà không cần đóng VLC tự động.

Đây là mã:

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

Một điều khác mà mã thực hiện là nó cho phép đánh dấu một số tệp mvà sau đó xếp hàng tất cả chúng vào danh sách phát VLC.


0

Đoạn mã sau sẽ hoạt động trên hệ điều hành OSX chỉ cho một tệp có con trỏ hiện tại - mã không cung cấp để kiểm tra phần mở rộng tệp và / hoặc đoán đúng ứng dụng phù hợp với phần mở rộng tệp:

(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

Nếu người đăng ban đầu muốn đối phó với việc mở nhiều tệp được đánh dấu, sau đó sử dụng dired-get-marked-filesmapcarxuống danh sách.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.