加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 19:10:33 所属栏目:安全 来源:网络整理
导读:我使用shell命令在emacs缓冲区中运行应用程序的输出。 (shell-command "verbose-app " "*verbose-app*") 问题是这个命令是非常冗长的。这么多,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内部,指出了一个关于处理和号的注释,如果它在那里,命令将异步运行。)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读