17.3. Режимы

Каждый буфер в Emacs имеет связанный с ним режим. Этот режим очень отличается от идеи режимов в vi: режим говорит вам о типе буфера, в котором вы находитесь. Например, для обычных текстовых файлов существует text-mode (текстовый режим), однако также существуют такие режимы как: c-mode (режим C) для редактирования программ на C, sh-mode (режим командного процессора) для редактирования шелл-скриптов, latex-mode (режим latex) для редактирования файлов LaTeX, mail-mode (почтовый режим) для редактирования электронных писем и новостей и другие режимы. Режимы предоставляют специальные возможности и функции, полезные для различных типов редактируемых файлов. Для режимов даже можно переопределять клавиши и клавишные команды. Например, в режиме текста клавиша Tab выполняет перескакивание на окончание следующего табулятора, а в большинстве режимов для языков программирования клавиша Tab делает отступ текущей строки на соответствующую глубину текущего блока, в котором находится эта строка.

Упомянутые выше режимы относятся к главным режимам. У каждого буфера есть только один главный режим. Дополнительно буфер может иметь один или несколько второстепенных режимов. Второстепенный режим предоставляет дополнительные возможности, которые могут быть полезными в определённых задачах редактирования. Например, если вы нажмёте клавишу INSERT, вы включите режим замены, т.е. именно то, что вы и ожидали от этой клавиши. Есть ещё режим автозаполнения (auto-fill), который удобен в комбинации с режимами текста или latex: в нём каждая набранная вами строка будет автоматически разбиваться с переносом на следующую строку при достижении определённого количества символов. Без использования этого режима для расширения параграфа вам нужно набрать M-q. (Что вы также можете использовать для повторного форматирования параграфа после того, как вы отредактировали в нём текст и он стал выглядеть менее аккуратно.)

17.3.1. Открытие файлов

Чтобы открыть в Emacs файл, наберите

C-x C-f

Emacs попросит вас ввести имя файла, вставив перед ним какой-то путь по умолчанию (обычно это ~/). После ввода имени файла (можете использовать Tab-завершение) и нажатия на ENTER Emacs откроет файл в новом буфере и покажет этот буфер на экране.

Замечание

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

Чтобы создать в Emacs'е новый файл, вы не можете сделать это, просто начав набирать текст. Вы сначала должны создать для него буфер и назначить ему имя файла. Вы можете выполнить это с помощью команды C-x C-f, набрав после этого имя файла, как если бы вы открывали существующий файл. Emacs сообщит вам, что указанный вами файл не существует, создаст для него новый буфер и выведет в минибуфере сообщение “(New file)”.

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

Если вы нажмёте C-x C-f и вдруг передумаете, вы можете нажать C-g для отмены действия. C-g работает практически в любых ситуациях, когда вам нужно отменить действие или команду, которое вы начали, но не хотите доводить до конца.