Как сделать так, чтобы при нажатии C-xC-bдля доступа к списку буферов этот буфер автоматически фокусировался вместо необходимости переключаться на него вручную C-xo? Я не могу найти переменную, которая настраивает это.
Как сделать так, чтобы при нажатии C-xC-bдля доступа к списку буферов этот буфер автоматически фокусировался вместо необходимости переключаться на него вручную C-xo? Я не могу найти переменную, которая настраивает это.
Ответы:
Вы можете заменить команду, list-buffers
которая запускается C-x C-b
, функцией, которая делает то, что вы хотите. В этом случае buffer-menu-other-window
открывается список буферов в другом окне с фокусом. Добавление следующего фрагмента в файл инициализации должно переназначить C-x C-b
новую функцию.
(define-key global-map [remap list-buffers] 'buffer-menu-other-window)
Здесь global-map
представляет раскладку, где C-x C-b
привязана к команде, list-buffers
исходная команда и buffer-menu-other-window
новая команда.
buffer-menu
, если вы не хотите использовать другое окно.
global-set-key
а также: (global-set-key [remap list-buffers] #'buffer-menu-other-window)
. global-set-key
это просто тонкая обертка вокруг define-key
.
Альтернативой является переключение на ibuffer, который не разделяет эту проблему.
ibuffer является частью GNU Emacs, поэтому в последних версиях Emacs вам просто нужно добавить
(global-set-key (kbd "C-x C-b") 'ibuffer)
в ваш файл инициализации.