2012-02-23 7 views

答えて

7

いくつかの最小限のテストでは、これが行います。

(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を実行するには、それが開いているすべてのシェルに送信されます。これはあなたのシェルが/bin/bashにあると仮定しています。そうでなければ、そのビットを適宜変更します。

これをたくさん行う場合は、お気に入りのキーコンボにバインドしたいと思うでしょう。 comint-send-inputのコードを借用して変更することができます。そのため、あるシェルのプロンプトで必要なコマンドを入力し、キーを押してそのコマンドをすべてのシェルに同時に送信させることができます。私は時間が足りないので、読者のための練習として残しておきます。

+0

あなたは私のヒーローです。 – Ishpeck

関連する問題