Как вызвать список буферов в Emacs

Обычно я набираю M-x buffer-menu для переключения буферов в Emacs. Как я могу сделать это с помощью более короткой команды? Это довольно длинная строка для ввода.

Спасибо!


person Jojje    schedule 17.08.2010    source источник
comment
В более общем смысле: C-h f имя функции вызовет справку по функции, включая любые клавиши, к которым она может быть привязана.   -  person stsquad    schedule 03.10.2012


Ответы (5)


  • Вы можете использовать C-x b для изменения буферов. Вы должны ввести первые несколько букв имени буфера, и, конечно же, вы можете использовать автодополнение. Если вы нажмете TAB (наиболее полезная клавиша в Emacs), появится список (совпадающих) буферов. Вы можете щелкнуть в этом списке, чтобы переключиться на буфер.

  • Вы можете привязать buffer-menu к ключу. Выберите ключ, который не используется для другой команды, скажем, f12, и добавьте следующую строку в файл ~/.emacs:

    (global-set-key (kbd "<f12>") 'buffer-menu)
    
  • Есть много других интерфейсов для изменения буферов в Emacs, и они могут быть значительно более эффективными, чем C-x b и C-x C-b. Поскольку это, как правило, очень личный выбор, я рекомендую вам поэкспериментировать с несколькими и оставить те, которые вам наиболее удобны.

person Gilles 'SO- stop being evil'    schedule 17.08.2010
comment
Просто из любопытства: почему вы откатили сделанную мной правку? - person itsjeyd; 10.04.2014
comment
@itsjeyd C-x b и тому подобное — стандартная нотация для привязки клавиш в Emacs. Пожалуйста, придерживайтесь этих обозначений при работе с ключами Emacs. Используйте теги kbd при ссылке на фактические клавиши клавиатуры, но используйте их правильно: например, нажатие <kbd>Ctrl</kbd>+<kbd>X</kbd>, а затем <kbd>B</kbd> на клавиатуре (здесь я показываю необработанный HTML, так как тег HTML нельзя использовать в комментарии) создает Emacs последовательность клавиш `C-x b`. - person Gilles 'SO- stop being evil'; 10.04.2014
comment
Интересный. Я всегда предполагал, что предложение вроде «Нажмите C-x b для изменения буферов» относится к (последовательности) фактически нажатых клавиш клавиатуры. Я бы не стал использовать нотацию <kbd> в контексте, относящемся к коду Elisp. Есть ли сообщение Meta SO (или запись в разделе справки, которую я мог пропустить), в которой определяются эти стандарты? Опять же, просто любопытно, так как я видел ряд сообщений, в которых доступные параметры разметки используются другим (но последовательным) способом, чем вы предлагаете. - person itsjeyd; 10.04.2014
comment
@itsjeyd Понятия не имею о метапосте. Пример в справке — это <kbd>ctrl</kbd>+<kbd>alt</kbd>+<kbd>del</kbd>, а не <kbd>ctrl-alt-del</kbd>, но это не очень убедительно. Но, написав несколько постов, в которых я объяснил разницу между физическими нажатиями клавиш и клавишами приложений (например, клавиши-модификаторы, ESC/Alt, …), я могу подтвердить, что различие полезно. - person Gilles 'SO- stop being evil'; 10.04.2014

C-x C-b

Как указано здесь

person Federico klez Culloca    schedule 17.08.2010
comment
Да, спасибо, что мне не нравится, так это то, что экран разделен на две части. - person Jojje; 18.08.2010

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

Если ваша версия Emacs достаточно новая (22+):

M-x ido-mode

а потом:

C-x b

для переключения буферов с инкрементным сопоставлением подстрок C-s и C-r вращаются вперед и назад по совпадениям.

Если у вас более старая версия Emacs, она должна иметь:

M-x iswitchb-mode

а затем, как с ido-mode:

C-x b

открывает минибуфер, чтобы вы могли выбрать буфер для переключения.

person R. P. Dillon    schedule 17.08.2010

Свяжите C-x C-b с buffer-menu. Нет смысла оставлять его привязанным к list-buffers. list-buffers — это просто евнух-версия buffer-menu. ;-)

И вы можете попробовать это: http://www.emacswiki.org/emacs/BufferMenuPlus

person Drew    schedule 21.08.2011

Попробуйте bs-show (на мой взгляд намного лучше, чем C-x C-b). Вы можете привязать его к F9, добавив это в .emacs:

(global-set-key (kbd "<f9>") 'bs-show)
person Session13    schedule 21.11.2010