Как сделать так, чтобы при нажатии 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)
в ваш файл инициализации.