私はM-!
、FirefoxやEvinceなどのを使用してemacsから外部プログラムを頻繁に起動します。実行するたびに、バッファがプロセスの結果でいっぱいにポップアップします。これにより、ウィンドウの配置に関して私が行っている他のことはすべて破棄されます。
デフォルトでそのようなバッファを埋める方法はありますか?そうすれば、バッファを探しに行くことに決めない限り、それらを見る必要はありませんか?
私はM-!
、FirefoxやEvinceなどのを使用してemacsから外部プログラムを頻繁に起動します。実行するたびに、バッファがプロセスの結果でいっぱいにポップアップします。これにより、ウィンドウの配置に関して私が行っている他のことはすべて破棄されます。
デフォルトでそのようなバッファを埋める方法はありますか?そうすれば、バッファを探しに行くことに決めない限り、それらを見る必要はありませんか?
回答:
コマンドが非同期で実行されていることを述べたので、私はあなたがにasync-shell-command
バインドされたコマンドを意味すると仮定していますM-&。あなたは次のようにカスタマイズasync-shell-command
する(あなたはそれを読むことでそれを読むことができますC-hfasync-shell-command
RET)のドキュメントのアドバイスに従うことができdisplay-buffer-alist
ます
(add-to-list 'display-buffer-alist (cons "\\*Async Shell Command\\*.*" (cons #'display-buffer-no-window nil)))
これで、コマンドが出力を表示するために使用するバッファーは表示されなくなります。
M-&
どちらも知りませんでした。私は使用していて、シェルに渡したコマンドにM-!
手動でを追加してい&
ました。
Emacsには、意図しない(または実際に意図的な)ウィンドウ構成の変更が問題を引き起こすのを防ぐための汎用機能があります。
(winner-mode 1)
initファイルに追加します。次に、何かがウィンドウを混乱させたら、C-c<left>(winner-undo
)を使用してウィンドウを復元します。これを繰り返し使用して、複数のウィンドウ構成の変更を元に戻すことができます。C-c<right>(winner-redo
)は、最新の構成に戻ります。
これが私の設定です。Linuxを使用している場合は、うまく機能するはずです。
(require 'dired-aux)
(defvar dired-filelist-cmd
'(("vlc" "-L")))
(defun dired-start-process (cmd &optional file-list)
(interactive
(let ((files (dired-get-marked-files t current-prefix-arg)))
(list
(dired-read-shell-command "& on %s: " current-prefix-arg files)
files)))
(start-process
cmd nil shell-file-name
shell-command-switch
(format "nohup 1>/dev/null 2>/dev/null %s \"%s\""
(if (> (length file-list) 1)
(format "%s %s" cmd
(cadr (assoc cmd dired-filelist-cmd)))
cmd)
(mapconcat #'expand-file-name file-list "\" \""))))
(define-key dired-mode-map "r" 'dired-start-process)
たとえばからPDFファイルを開いたときに、これらの厄介なバッファが非表示になるだけでなくdired
、Emacsを閉じてもEvince は保持されます。マークされたビデオファイルをvlcプレイリストにキューイングするための小さなカスタマイズもあります。
グローバルに使用する代わりに、単一のコマンドに対してそのウィンドウを抑制することができます let
(let ((display-buffer-alist
(cons (cons "\\*Async Shell Command\\*.*"
(cons #'display-buffer-no-window nil))
display-buffer-alist))) ;; suppress async shell command window
(async-shell-command command))
(cons NEWTHING display-buffer-alist)
代わりに(list NEWTHING)
、元のリストを完全に阻害しないようにすることをお勧めします。