バッファを作成してすぐに非表示にする方法を探しています。これは技術情報のバッファであり、ユーザーにとっては興味のないものでありshell-command
、出力を処理するために使用されます。
kill-buffer
- そのバッファをライブにする必要があるため、必要なものではありません。
delete-window
- バッファがどのように正確に開くかを確認する方法がないため、これも行いません (新しいウィンドウを作成するか、別のウィンドウを引き継ぐ可能性があります)。
に提供する前にバッファーを作成しても役に立ちません。以前shell-command
に存在したかどうかに関係なく、それを前面に移動し、その時点でウィンドウが 1 つしかなかった場合は、追加のウィンドウを作成しますが、より多くのウィンドウがあった場合、基本的にランダムに何かを行います。新しいウィンドウが作成される場合もあれば、作成されない場合もあります。
編集:
以下の例は、問題を示しています。
(defun haxe-start-waiting-server (&optional compiler host port)
"Starts Haxe `haxe-compiler' on `haxe-server-host':`haxe-server-port'
with \"--wait\" for the future requests made by autocompletion
or flymake.
This function is bound to \\[haxe-start-waiting-server]"
(interactive
(let ((compiler-i
(read-string "Haxe compiler: "
haxe-compiler t haxe-compiler))
(host-i
(read-string "Haxe server host: "
haxe-server-host t haxe-server-host))
(port-i
(read-number "Haxe server port: " haxe-server-port)))
(list compiler-i host-i port-i)))
(unless (called-interactively-p 'interactive)
(unless compiler (setq compiler haxe-compiler))
(unless host (setq compiler haxe-server-host))
(unless port (setq compiler haxe-server-port)))
(save-excursion
(let ((new-buffer
(get-buffer-create
(generate-new-buffer-name
" *haxe-waiting-server*"))))
(async-shell-command
(concat compiler " --wait "
host ":" (number-to-string port))
new-buffer)
(bury-buffer new-buffer))))