emacs 内で、複数のシェルを開いて、コマンドを 1 回入力し、各シェルで実行したいと考えています。
質問する
189 次
1 に答える
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
1 つのシェルのプロンプトで必要なコマンドを入力し、キーを押して、そのコマンドをすべてのシェルに同時に送信できるように、コードを借用して変更することができます。時間がないので、これは読者の課題として残しておきます。
于 2012-02-23T22:30:51.207 に答える