Зробити фокус буфера зосередженим?


11

Як я можу зробити так, що коли натискаю, C-xC-bщоб отримати доступ до списку буферів, цей буфер автоматично фокусується, замість того, щоб переходити до нього вручну C-xo? Я не можу знайти змінну, яка це налаштовує.


2
Це суто редакційний характер, але я ніколи не розумів, як вважати корисним створення списку неорієнтованим. Так що, добре запитання.
Авді

Відповіді:


9

Ви можете замінити команду , list-buffersяка запускається з C-x C-bфункцією , яка робить те , що ви хочете. У цьому випадку buffer-menu-other-windowвідкриється список буферів в іншому вікні з фокусом. Додаючи наступний фрагмент до файлу init, слід перезапустити 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якщо ви не хочете використовувати інше вікно.
Дрю

Kudos для використання перестановки на глобальний набір ключів.

@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)

у ваш файл init.


1
Це я теж роблю, але формулювання вашої відповіді робить таке, що це більше, ніж просто питання переваги.
nispio

Це, безумовно, робить.
Дейв
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.