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

emacs shell:输入一次,到处运行

发布时间:2020-12-15 21:15:14 所属栏目:安全 来源:网络整理
导读:在emacs中,我希望打开多个 shell,键入一次命令,并让它在每个shell中运行 – 类似于multixterm( http://freecode.com/projects/multixterm)的方式. 解决方法 通过一些最小的测试,这将做: (defun send-to-all-shells () (interactive) (let ((command (read-f
在emacs中,我希望打开多个 shell,键入一次命令,并让它在每个shell中运行 – 类似于multixterm( http://freecode.com/projects/multixterm)的方式.

解决方法

通过一些最小的测试,这将做:

(defun send-to-all-shells ()
  (interactive)
  (let ((command (read-from-minibuffer "Command: ")))
    (mapcar #'(lambda (x) (comint-send-string x (concat "n" command "n")))
            (remove-if-not
             #'(lambda (x) 
                 (string= "/bin/bash" 
                          (car (process-command x))))
             (process-list)))))

要运行,只需M-x send-to-all-shells,输入您想要的命令,它将被发送到所有打开的shell.假设你的shell在/ bin / bash中找到.如果不是,请相应地更改该位.

如果你做了很多,你会想要将它绑定到你最喜欢的键组合.可以在comint-send-input中借用和修改代码,这样你就可以在一个shell的提示符下输入你想要的命令,点击你的密钥并同时将命令发送到所有shell.我的时间很短,所以我会将其作为练习留给读者.

(编辑:李大同)

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

    推荐文章
      热点阅读