Saya sering meluncurkan program eksternal menggunakan emacs M-!
, seperti Firefox atau Evince, dll. Setiap kali saya lakukan, buffer muncul penuh hasil untuk proses, yang clobbers apa pun yang saya punya dalam hal pengaturan windows.
Apakah ada cara untuk mengubur buffer seperti itu secara default, sehingga saya tidak perlu melihatnya kecuali saya memutuskan untuk mencari mereka?
Jawaban:
Karena menyebutkan bahwa perintah berjalan secara tidak sinkron, saya berasumsi maksud Anda adalah perintah yang
async-shell-command
terikat M-&. Anda dapat mengikuti saran dalam dokumentasiasync-shell-command
(Anda dapat membacanya dengan melakukan C-hfasync-shell-command
RET) menyesuaikandisplay-buffer-alist
sebagai berikutSekarang buffer yang digunakan oleh perintah untuk menampilkan output tidak akan pernah ditampilkan.
sumber
M-&
. Saya menggunakanM-!
dan kemudian secara manual menambahkan&
perintah yang saya berikan ke shell.Emacs memiliki fasilitas tujuan umum untuk mencegah perubahan konfigurasi jendela yang tidak disengaja (atau memang disengaja) menyebabkan masalah.
Tambahkan
(winner-mode 1)
ke file init Anda. Lalu ketika sesuatu mengacaukan jendela Anda, gunakan C-c<left>(winner-undo
) untuk mengembalikannya. Anda dapat menggunakannya berulang kali untuk membatalkan perubahan konfigurasi beberapa jendela. C-c<right>(winner-redo
) mengembalikan Anda ke konfigurasi terbaru.sumber
Ini konfigurasi saya. Ini seharusnya bekerja dengan baik jika Anda menggunakan Linux.
Tidak hanya itu akan menyembunyikan buffer sial ketika Anda misalnya membuka file pdf dari
dired
, Evince akan bertahan bahkan jika Anda menutup Emacs. Ada juga kustomisasi kecil untuk mengantri file video yang ditandai untuk daftar putar vlc.sumber
Anda dapat menekan jendela itu untuk satu perintah alih-alih menggunakan secara global
let
sumber
(cons NEWTHING display-buffer-alist)
bukannya(list NEWTHING)
agar tidak sepenuhnya menghambat alist asli.