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.
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.
Odpowiedzi:
Możesz zamienić list-buffers
uruchamiane C-x C-b
polecenie na funkcję, która robi to, co chcesz. W takim przypadku buffer-menu-other-window
otwiera listę buforów w innym oknie z fokusem. Dodanie następującego fragmentu kodu do pliku init powinno zostać ponownie przypisane C-x C-b
do nowej funkcji.
(define-key global-map [remap list-buffers] 'buffer-menu-other-window)
Tutaj global-map
reprezentuje mapę klawiszy, w której C-x C-b
jest powiązane polecenie, list-buffers
oryginalne polecenie i buffer-menu-other-window
nowe polecenie.
buffer-menu
, jeśli nie chcesz używać innego okna.
global-set-key
również: (global-set-key [remap list-buffers] #'buffer-menu-other-window)
. global-set-key
jest jedynie cienkim opakowaniem define-key
.
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.