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.


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.


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.