Buat Buffer List jadi fokus?

11

Bagaimana saya bisa membuatnya sehingga ketika saya menekan C-xC-buntuk mengakses Daftar Buffer, buffer itu secara otomatis mengambil fokus alih-alih harus beralih secara manual C-xo? Saya tidak dapat menemukan variabel yang mengkustomisasi ini.

Chris
sumber
2
Ini murni editorial, tetapi saya tidak pernah mengerti bagaimana membuat daftar yang tidak fokus seharusnya berguna. Jadi ya, pertanyaan yang bagus.
Avdi

Jawaban:

9

Anda dapat mengganti perintah list-buffersyang dijalankan dengan C-x C-bfungsi yang melakukan apa yang Anda inginkan. Dalam hal ini, buffer-menu-other-windowbuka daftar buffer di jendela lain dengan fokus. Menambahkan potongan berikut ke file init Anda harus memetakan kembali C-x C-bke fungsi baru.

 (define-key global-map [remap list-buffers] 'buffer-menu-other-window)

Di sini global-mapmewakili keymap di mana C-x C-bterikat ke perintah, list-buffersperintah asli dan buffer-menu-other-windowperintah baru.

Vamsi
sumber
4
Atau buffer-menu, jika Anda tidak ingin menggunakan jendela lain.
Drew
Kudos untuk menggunakan remapping atas global-set-key.
@metaturso Anda dapat remap dengan global-set-keyjuga: (global-set-key [remap list-buffers] #'buffer-menu-other-window). global-set-keyhanyalah pembungkus tipis di sekitar define-key.
Basil
7

Alternatifnya adalah beralih ke ibuffer, yang tidak berbagi masalah ini.

ibuffer adalah bagian dari GNU Emacs, jadi pada versi terbaru dari Emacs Anda hanya perlu menambahkan

(global-set-key (kbd "C-x C-b") 'ibuffer)

ke file init Anda.

Dave
sumber
1
Ini adalah apa yang saya lakukan juga, tetapi kata-kata dari jawaban Anda membuatnya sepertinya lebih dari sekadar masalah preferensi.
nispio
Tentu saja.
Dave