【问题标题】:function to call same shell command in dired在dired中调用相同shell命令的函数
【发布时间】:2009-12-01 08:10:28
【问题描述】:

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

我试图破解 dired-aux.el 中的函数 dired-do-shell-command 但我不明白交互行。

最后,我希望能够将此函数绑定到 C-o 以实现 dired-mode,这样我就不必使用 mac os x 的 Finder 来导航文件并打开它们。这将允许我完全迁移到 emacs。

谢谢。

【问题讨论】:

    标签: emacs macos elisp dired


    【解决方案1】:
    (defun 直接打开 () (交互的) (dired-do-async-shell 命令 “打开”当前前缀参数 (dired-get-marked-files t current-prefix-arg))) (define-key dired-mode-map (kbd "C-o") 'dired-open)

    编辑:

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

    (defun 直接打开 () (交互的) (保存窗口游览 (dired-do-async-shell 命令 “打开”当前前缀参数 (dired-get-marked-files t current-prefix-arg))))

    【讨论】:

    • 谢谢怀远。按预期工作。当我运行 C-o 时,它会打开,并且 emacs 会创建一个缓冲区“Async shell 命令”。我认为这个缓冲区是用于标准输出的输出。除非确实有输出或错误消息,否则有没有办法抑制此窗口打开?谢谢!
    • 在相关注释中,我写了一篇关于在每个标记文件上运行 elisp 函数的博文:justinsboringpage.blogspot.com/2009/04/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    • 2022-01-01
    • 2015-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多