9

*Shell Command Output*このようなシェルコマンドを呼び出すときにバッファをポップアップしないように emacs に指示するにはどうすればよいですか?

(shell-command MY_COMMAND)

現在、emacs は現在のウィンドウを 2 つに分割し、(ほとんど無関係な) 出力バッファーを表示します。気が向いたら後で調べれば十分です。

4

4 に答える 4

11

たぶん、使用shell-commandが問題の根本でした。call-processもっとエレガントな方法があるかもしれませんが、うまくいく 解決策を見つけたと思います:

(call-process-shell-command
 "cat ~/.emacs.d/init.el"
 nil "*Shell Command Output*" t
 )
于 2012-07-23T15:08:01.103 に答える
9

shell-commandOUTPUT-BUFFER出力先のバッファを指定できるオプションの引数を取ります。である場合t(実際には buffer-name ではなくnil)、現在のバッファーに出力されます。したがって、これを にラップし、with-temp-buffer気にする必要はありません。

(with-temp-buffer
  (shell-command "cat ~/.emacs.d/init.el" t))
于 2012-07-23T14:08:13.830 に答える
1

このユーティリティ関数が役立つ場合があります。シェルコマンドの実際の値を返します

(defun shell-command-as-string (cmd)
  (with-temp-buffer
    (shell-command-on-region (point-min) (point-max)
                             cmd t)
    (buffer-string)))
于 2013-12-12T13:29:58.810 に答える