*Shell Command Output*
このようなシェルコマンドを呼び出すときにバッファをポップアップしないように emacs に指示するにはどうすればよいですか?
(shell-command MY_COMMAND)
現在、emacs は現在のウィンドウを 2 つに分割し、(ほとんど無関係な) 出力バッファーを表示します。気が向いたら後で調べれば十分です。
*Shell Command Output*
このようなシェルコマンドを呼び出すときにバッファをポップアップしないように emacs に指示するにはどうすればよいですか?
(shell-command MY_COMMAND)
現在、emacs は現在のウィンドウを 2 つに分割し、(ほとんど無関係な) 出力バッファーを表示します。気が向いたら後で調べれば十分です。
たぶん、使用shell-command
が問題の根本でした。call-process
もっとエレガントな方法があるかもしれませんが、うまくいく
解決策を見つけたと思います:
(call-process-shell-command
"cat ~/.emacs.d/init.el"
nil "*Shell Command Output*" t
)
shell-command
OUTPUT-BUFFER
出力先のバッファを指定できるオプションの引数を取ります。である場合t
(実際には buffer-name ではなくnil
)、現在のバッファーに出力されます。したがって、これを にラップし、with-temp-buffer
気にする必要はありません。
(with-temp-buffer
(shell-command "cat ~/.emacs.d/init.el" t))
このユーティリティ関数が役立つ場合があります。シェルコマンドの実際の値を返します
(defun shell-command-as-string (cmd)
(with-temp-buffer
(shell-command-on-region (point-min) (point-max)
cmd t)
(buffer-string)))