Сделать список буферов сфокусированным?

11

Как сделать так, чтобы при нажатии C-xC-bдля доступа к списку буферов этот буфер автоматически фокусировался вместо необходимости переключаться на него вручную C-xo? Я не могу найти переменную, которая настраивает это.

Крис
источник
2
Это чисто редакционная статья, но я никогда не понимал, как полезен составление списка без фокусировки. Так что да, хороший вопрос.
Авди

Ответы:

9

Вы можете заменить команду, 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новая команда.

Vamsi
источник
4
Или buffer-menu, если вы не хотите использовать другое окно.
Дрю
Престижность для использования переназначения по глобальному ключу набора.
@metaturso Вы можете переназначить с , global-set-keyа также: (global-set-key [remap list-buffers] #'buffer-menu-other-window). global-set-keyэто просто тонкая обертка вокруг define-key.
Василий
7

Альтернативой является переключение на ibuffer, который не разделяет эту проблему.

ibuffer является частью GNU Emacs, поэтому в последних версиях Emacs вам просто нужно добавить

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

в ваш файл инициализации.

Дейв
источник
1
Это то, что я делаю, но формулировка вашего ответа заставляет думать, что это больше, чем просто вопрос предпочтений.
Nispio
Это конечно делает.
Дейв