如何加速从异步shell命令输出的emacs?

前端之家收集整理的这篇文章主要介绍了如何加速从异步shell命令输出的emacs?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用shell命令在emacs缓冲区中运行应用程序的输出
(shell-command "verbose-app &" "*verbose-app*")

问题是这个命令是非常冗长的。这么多,emacs缓冲区有时需要几秒钟才能赶上。实际输出滞后数秒。

有没有办法通过禁用某些东西加快输出滚动?像正则表达式匹配或语法高亮?

备查:

详细的应用程序是adb logcat。我改变了我现有的功能

(defun adb-logcat ()
  (interactive)
  (shell-command "adb logcat -v threadtime&" "*adb-logcat*")
  (pop-to-buffer "*adb-logcat*")
  (buffer-disable-undo))

以下内容

(defun adb-logcat ()
  (interactive)
  (start-process "*adb-logcat*" "*adb-logcat*" "/bin/sh" "-c" "adb logcat -v threadtime")
  (pop-to-buffer "*adb-logcat*")
  (buffer-disable-undo))

它现在滚动更快。好极了!

就像文档所说,shell命令在下面的shell中运行命令,这意味着shell模式。如果您只想输出并且没有任何功能,则使用start-process运行命令可能更接近您想要的。
(start-process "*verbose-app*" "*verbose-app*"
 "/bin/sh" "-c" "verbose-app")

将其包装成功能不应该太难了。你可能想看看shell-command如何实现异步命令;例如,如果您尝试在另一个已存在时尝试创建一个,则会询问是否应该终止现有进程。 http://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/simple.el#n2447可能是一个很好的起点。 (如果链接不好,这是一个链接到defun shell-command内部,指出了一个关于处理和号的注释,如果它在那里,命令将异步运行。)

猜你在找的Bash相关文章