Kadang-kadang daftar buffer saya memiliki 10+ windows dired, dan saya akhirnya menggunakan buffer-menu
untuk secara manual menandai dan membunuh semuanya. Apakah ada cara yang lebih cepat untuk menutup semua jendela yang terbuka?
23
Jawaban:
Anda dapat melakukan hal berikut:
M-x
ibuffer
* /
untuk menandai buffer dalam mode dired.D
untuk menghapusnya.sumber
C-x C-b
untukibuffer
.t
(dired-toggle-marks
) untuk menandai semua (jika tidak ada yang sebelumnya ditandai).dired-toggle-marks
adalah nama dari perintah dired . Menekant
juga akan mengaktifkan semua tanda di ibuffer, tetapi buffer non-dired biasanya lebih banyak daripada buffer yang dired, sehingga toggling tidak sering masuk akal dalam konteks ini.Alih-alih menambahkan fungsi lain untuk membunuh semua
dired
buffer, saya sarankan Anda memanfaatkan grup filter diibuffer
, itu memungkinkan Anda untuk mengelompokkan buffer berdasarkan banyak kondisi.Berikut adalah contoh untuk mengatur grup filter:
Kemudian
C-x C-b
bukaibuffer
jendela, Anda dapat melihat sesuatu seperti ini:Pindahkan kursor ke
[ Dired ]
(denganM-p
,M-n
), lalu tekand
untuk menandai sebagai hapuslalu tekan
x
untuk menjalankan.Saya lebih suka cara ini karena saya tidak perlu memikirkan bagaimana saya harus mengikat kunci saya ke fungsi baru, dan buffer saya lebih terorganisir.
sumber
ibuffer
setelah mengevaluasi kode Anda. Saya harus menekan/ R
(terikatibuffer-switch-to-saved-filter-groups
) untuk mendapatkan grup.(ibuffer-switch-to-saved-filter-groups "Default")
Anda dapat menambahkan baris kode ini ke kait ibuffer, nama grup filter harus diubah jika tidakDefault
Apakah Anda memiliki banyak buffer Dired karena Anda menginginkan semuanya pada satu titik? TKI, apakah Anda ingin membuat masing-masing sebagai buffer terpisah?
Jika tidak, solusinya sederhana: beri tahu Dired untuk menggunakan kembali buffer Dired yang ada saat Anda menekan
RET
nama direktori untuk membukanya di Dired.Inilah cara melakukannya:
Muat perpustakaan Dired + (
dired+.el
):Beri tahu Dired untuk menggunakan kembali Buffer Dired:
Efeknya adalah ketika Anda menekan
RET
(atau mengklik mouse) pada direktori di Dired,find-alternate-file
digunakan, jadi buffer Dired asli diganti (dihapus) dengan yang baru.Anda dapat beralih perilaku ini kapan saja, menggunakan
C-M-R
(aliasC-M-S-r
) di Dired.sumber
Sesuatu seperti ini (gulir sedikit)?
sumber
Anda juga dapat menggunakan
helm-mini
:M-x helm-mini
.*Di
(sebagian kata untukDired
, tidak perlu memasukkan lebih banyak). Saat Anda mengetik, buffer semakin menyempit. Sekarang, tinggalDired
buffer yang tersisa. TekanM-a
untuk menandai semua.TAB
untuk beralih ke menu tindakan dan tekanK
untuk memilih tindakanKill buffer(s)
.RET
untuk menjalankan tindakan.Hal baiknya
helm-mini
adalah ia dapat menggantikan Emacs normalC-x b
, jadi Anda tidak perlu menggunakan dua ikatan utama, satu untuk mengganti buffer dan satu untuk buffer manager yang sebenarnya.helm-mini
adalah all-in-one. Baca lebih lanjut di panduan helm-mini saya .helm-mini
juga dapat fuzzy match buffer dan memungkinkan untuk membuka beberapa buffer dengan menandai denganC-SPC
atauM-a
(singkatan dari M ark a ll). Anda juga dapat mempersempit buffer berisi string tertentu dengan menambahkan@
sebelum suatu pola, misalnya,@test
berarti hanya memilih buffer yang berisi string "test".sumber
Saya akan mencoba sesuatu seperti ini:
sumber
-filter
memerlukandash.el
dari MELPA. Anda mungkin harus mencantumkannya sebagai persyaratan.Apa yang sebenarnya Anda cari adalah cara untuk membersihkan buffer yang tidak diinginkan secara otomatis, dalam hal ini Anda harus memeriksa
midnight.el
, yang merupakan bagian dari Emacs.Tetapi secara umum,
ibuffer
membuatnya sangat mudah untuk beroperasi pada buffer dalam jumlah besar, seperti yang disarankan Francisco.sumber
Jika Anda menggunakan Icicles , maka Anda dapat menggunakannya
C-x k
untuk membunuh semua buffer Dired - atau semua buffer dalam mode apa pun.Setelah memukul
C-x k
, gunakanC-x M +
untuk menjaga hanya buffer dengan mode tertentu. TekanTAB
untuk melihat mode, dan pilihdired-mode
. Kemudian gunakanC-!
untuk membunuh semua buffer dengan mode itu.sumber