답변:
리눅스에서 나는 항상 이것을한다. 에있는 동안 dired
모드, 당신이보고 싶은 파일에 커서를 가지고있다.
을 입력 !
하고 사용하려는 프로그램을 입력하십시오 .
나는을 사용 mplayer
하므로 다음을 입력하십시오.
!mplayer
그리고 그게 다야. vlc를 사용하거나 플랫폼에서 작동하는 모든 것을 사용할 수 있습니다.
!vlc
뭐, 정말 좋은 dired 사용하는 것은, 내가 (예 : 파일 편집기, 내가하면하지 않는 MPlayer는 출력이 창을 얻을 수 있다는 것입니다 nautilus
또는 thunar
, 내가 마우스 오른쪽 버튼을 클릭하고 MPlayer와 함께 응시 할 파일을 요청).
어쨌든 매크로 또는 확장이 필요하지 않습니다. 그냥 ...!
&
, asyncly 그것을 할 예 : &vlc
- 당신은 쉘 명령을 종료하지 않고도 이맥스를 다시 얻을 것이다
&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)
코드가 수행하는 다른 작업은로 여러 파일을 표시 m한 다음 모든 파일을 VLC 재생 목록에 대기시킬 수 있다는 것입니다.
다음 스 니펫은 커서가 현재있는 파일 하나에 대해서만 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
아래로 내립니다.