Mar*_*ert 15 emacs asynchronous dired
我~/.emacs包含以下设置,用于打开某些应用程序的某些文件(Ubuntu 12.10; Emacs 24):
(setq dired-guess-shell-alist-user
'(("\\.pdf\\'" "okular ? &")
("\\.djvu\\'" "okular ? &")
("\\.mp3\\'" "vlc ? &")
("\\.mp4\\'" "vlc ? &")
))
Run Code Online (Sandbox Code Playgroud)
当我导航到.pdf dired-mode并点击时!,它会在Okular中打开.pdf,但是dired-buffer被分成两部分,第二部分现在是一个无用的*Async Shell Command*缓冲区,包含像
okular(25393)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
okular(25393)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
okular(25393)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
okular(25393)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
Run Code Online (Sandbox Code Playgroud)
如何防止打开此缓冲区?(除非,如果有错误,此信息有用).
我在这里和这里找到了相关的问题,但它们似乎处理异步执行的特定命令,而不是*Async Shell Command*一般的(如果可能的话,我想改变异步进程的一般行为,不仅仅是针对某些文件类型)
Jac*_*son 16
在这里找到:
(call-process-shell-command "okular&" nil 0)
Run Code Online (Sandbox Code Playgroud)
适合我.没有stderr gobbledygook.
这个问题是在2012年提出的,在撰写本文时,最新答案是2015年。现在,在2017年,我可以说答案很简单:
(add-to-list 'display-buffer-alist
(cons "\\*Async Shell Command\\*.*" (cons #'display-buffer-no-window nil)))
小智 5
我正在利用 user1404316 的答案,但这是实现预期结果的另一种通用方法。
(defun async-shell-command-no-window
(command)
(interactive)
(let
((display-buffer-alist
(list
(cons
"\\*Async Shell Command\\*.*"
(cons #'display-buffer-no-window nil)))))
(async-shell-command
command)))
Run Code Online (Sandbox Code Playgroud)
我并不完全确定是否要对一般的异步进程执行此操作,但对于任何经历的事情async-shell-command,这应该有效:
(defadvice async-shell-command (around hide-async-windows activate)
(save-window-excursion
ad-do-it))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2827 次 |
| 最近记录: |