17.2. Буферы

В Emacs понятие “буферы” является основополагающим. Каждый открываемый вами файл загружается в свой собственный буфер. Более того, в Emacs есть несколько специальных буферов, которые не содержат файлы, а предназначены для других целей. Названия таких буферов обычно обрамлены звёздочками. Например, буфер, показываемый Emacs'ом после запуска, - это т.н. буфер *scratch*. В нём вы можете вводить текст как обычно, однако он не будет сохранён после выхода из Emacs.

Существует ещё один специальный буфер, о котором вам необходимо знать. Это т.н. минибуфер. Этот буфер состоит из единственной строки и всегда виден на экране: это самая последняя строка в окне Emacs, находящаяся под строкой состояния текущего буфера. В минибуфере Emacs выводит сообщения для пользователя, а также он является местом для выполнения команд, требующих от пользователя ввода данных. Например, при открытии файла Emacs попросит вас ввести его имя в минибуфере.

Переключение между буферами выполняется с помощью команды C-x b. При этом вы увидите приглашение для ввода имени буфера (обычно в качестве имени буфера выступает название редактируемого в нём файла), а в приглашении по умолчанию будет выбран буфер, в котором вы были до переключения в текущий буфер или до его создания. Нажатие на Enter переключит вас в буфер по умолчанию.

Если вам нужно переключиться в другой буфер, а не в тот, что Emacs предлагает по умолчанию, просто наберите его имя. Обратите внимание, что при этом вы можете использовать так называемое автозавершение Tab'ом: введите первые несколько букв названия буфера и нажмите Tab; Emacs попытается самостоятельно завершить имя буфера. Завершение Tab'ом работает в Emacs везде, где это имееет смысл.

Получить список открытых буферов можно с помощью комбинации C-x C-b. Как правило эта команда разделит экран на две части, показав в верхней половине буфер, в котором вы работали, а в нижней половине - новый буфер под названием *Buffer List*. В этом буфере будет представлен список всех буферов, их размеры и режимы, а также файлы (если таковые присутствуют), открытые в этих буферах. Избавиться от этого буфера можно, набрав C-x 1.

Замечание

В X'ах список буферов также доступен в меню Buffer в главном меню.