回答:
Linuxでは、これを常に行います。滞在中dired
のモード、見たいファイルの上にカーソルを持っています。
と入力し!
、続けて使用するプログラムを入力します。
私はを使用mplayer
しているので、次のように入力します。
!mplayer
以上です。vlcを使用することも、プラットフォームで機能するものを使用することもできます。
!vlc
diredを使用して本当に良いことは、mplayerの出力を含むウィンドウが表示されることです(nautilus
またはなどのファイルエディターthunar
を使用して右クリックし、ファイルをmplayerで開始するように要求すると、ウィンドウが表示されません)。
とにかく、マクロや拡張機能は必要ありません。ただ...!
&
非同期でそれを行うために使用します。例:&vlc
-シェルコマンドを閉じる必要なく、emacsを取得します
&vlc
は機能していないようですが、vlc&
機能します。
この投稿ではVLCの設定について説明しました。本当にすばらしいのは、子プロセスがによって否認されるnohup
ため、VLCを自動的に閉じなくてもEmacsを安全に再起動または閉じることができることです。
これがコードです:
(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)
コードが行うもう1つのことは、いくつかのファイルをmでマークし、それらすべてをVLCプレイリストにキューイングできるようにすることです。
次のスニペットは、現在カーソルが置かれている1つのファイルに対してのみOSXオペレーティングシステムで機能します。このコードでは、ファイル拡張子の調査や、ファイル拡張子と一致する正しいアプリケーションの推測は行われません。
(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
オリジナルポスターは、複数のマークされたファイルを開くに対処その後、使用したい場合dired-get-marked-files
やmapcar
ドロップダウンリスト。