函数在dired中调用相同的shell命令

时间:2009-12-01 08:10:29

标签: emacs macos elisp dired

我希望能够在dired中的标记文件上调用相同的shell命令,而不需要emacs来提示命令输入,因为命令将始终相同。特别是,命令是“打开”(对于mac os x)。

我试图在dired-aux.el中破解函数dired-do-shell-command但我不理解交互式线路。

在一天结束时,我希望能够将此函数绑定到C-o for dired-mode,这样我就不必使用mac os x的Finder来导航文件并打开它们。这将允许我完全转移到emacs。

感谢。

1 个答案:

答案 0 :(得分:4)

(defun dired-open ()
  (interactive)
  (dired-do-async-shell-command
   "open" current-prefix-arg
   (dired-get-marked-files t current-prefix-arg)))

(define-key dired-mode-map (kbd "C-o") 'dired-open)

编辑:

我们可以使用save-window-excursion来保护现有的窗口配置不被输出缓冲区弄乱:

(defun dired-open ()
  (interactive)
  (save-window-excursion
    (dired-do-async-shell-command
     "open" current-prefix-arg
     (dired-get-marked-files t current-prefix-arg))))