Czy skupić się na liście buforów?

11

Jak mogę to zrobić, aby po naciśnięciu przycisku C-xC-bdostępu do listy buforów automatycznie ustawiał się bufor, zamiast konieczności przełączania się na niego ręcznie za pomocą C-xo? Nie mogę znaleźć zmiennej, która to dostosuje.

Chris
źródło
2
Jest to czysto redakcyjne, ale nigdy nie zrozumiałem, w jaki sposób nieprzygotowanie listy powinno być przydatne. Więc tak, dobre pytanie.
Avdi

Odpowiedzi:

9

Możesz zamienić list-buffersuruchamiane C-x C-bpolecenie na funkcję, która robi to, co chcesz. W takim przypadku buffer-menu-other-windowotwiera listę buforów w innym oknie z fokusem. Dodanie następującego fragmentu kodu do pliku init powinno zostać ponownie przypisane C-x C-bdo nowej funkcji.

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

Tutaj global-mapreprezentuje mapę klawiszy, w której C-x C-bjest powiązane polecenie, list-buffersoryginalne polecenie i buffer-menu-other-windownowe polecenie.

Vamsi
źródło
4
Lub buffer-menu, jeśli nie chcesz używać innego okna.
Drew
Wyrazy uznania za używanie remapowania nad globalnym kluczem.
@metaturso Można przemapować z global-set-keyrównież: (global-set-key [remap list-buffers] #'buffer-menu-other-window). global-set-keyjest jedynie cienkim opakowaniem define-key.
Basil
7

Alternatywą jest przejście na ibuffer, który nie dzieli tego problemu.

ibuffer jest częścią GNU Emacs, więc w najnowszych wersjach Emacsa powinieneś tylko dodać

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

do twojego pliku init.

Dave
źródło
1
To samo robię, ale sformułowanie twojej odpowiedzi sprawia, że ​​wydaje się, że jest to coś więcej niż tylko kwestia preferencji.
nispio
Z pewnością tak.
Dave