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


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новая команда.


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

Это конечно делает.
Дейв
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.