Поиск по сайту:

Как использовать редактор Emacs в Linux


Введение

Emacs — один из старейших и наиболее универсальных текстовых редакторов. Версия GNU Emacs была первоначально написана в 1984 году и хорошо известна своими мощными и богатыми функциями редактирования. Его можно настраивать и расширять с помощью различных режимов, что позволяет использовать его как интегрированную среду разработки (IDE) для таких языков программирования, как Java, C и Python.

Для тех, кто использовал как Vi, так и удобные текстовые редакторы nano, Emacs представляет собой нечто среднее. Его сильные стороны и функции напоминают Vi, а его меню, файлы справки и командные клавиши сравнимы с nano.

В этой статье вы узнаете, как установить Emacs на сервер Ubuntu 22.04 и использовать его для базового редактирования текста.

Предпосылки

Чтобы следовать этому руководству, вам понадобится сервер Ubuntu 22.04, настроенный пользователем без полномочий root с привилегиями sudo и включенным брандмауэром. Вы можете настроить это, следуя нашему руководству Initial Server Setup with Ubuntu 22.04.

Шаг 1 – Установка Emacs

Начните с проверки, установлен ли уже Emacs в вашей системе:

  1. emacs

Если программа установлена, редактор запустится с приветственным сообщением по умолчанию. Если нет, вы получите этот вывод:

Output
Command 'emacs' not found, but can be installed with: sudo apt install e3 # version 1:2.82+dfsg-2 sudo apt install emacs-gtk # version 1:27.1+1-3ubuntu5 sudo apt install emacs-lucid # version 1:27.1+1-3ubuntu5 sudo apt install emacs-nox # version 1:27.1+1-3ubuntu5 sudo apt install jove # version 4.17.3.6-2 See 'snap info emacs' for additional versions.

Чтобы установить Emacs, используйте следующую команду:

  1. sudo apt install emacs

После установки Emacs на свой компьютер вы готовы перейти к следующему шагу.

Шаг 2 – Использование интерфейса

Запустите Emacs, введя команду emacs в своем терминале:

  1. emacs

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

Чтобы начать новый файл, переместите курсор на ссылку «Посетить новый файл», нажав клавишу TAB, а затем нажмите ENTER. Вы также можете нажать CTRL+X, затем CTRL+F для создания нового файла. В конце вашего терминала появится подсказка с запросом имени файла:

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

Пустой файл будет готов для ввода текста:

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

Когда Emacs редактирует существующий файл на диске, копия этого документа сначала загружается в память, а затем отображается в главном окне редактирования. Эта область памяти называется буфером. По мере работы с документом все изменения, которые вы делаете в области редактирования, применяются к буферу, а исходный файл на диске остается неизменным. Иногда Emacs автоматически сохраняет в фоновом режиме, но только когда вы вручную сохраняете документ, изменения записываются на диск. То же самое относится и к новому файлу. Все изменения вносятся в буфер, пока вы его не сохраните. Основное пространство редактирования в Emacs — это ваш взгляд на буфер.

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

  • Имя текущего файла
  • Текущее местоположение курсора
  • Текущий режим редактирования
  • Статус файла (-- для немодифицированного файла, ** для файла с несохраненными изменениями и %% для файлов только для чтения)

Наконец, после строки состояния, где заканчивается экран, есть пробел. В этом примере отображается текст \(Новый файл). Эта область называется мини-буфер. где Emacs запрашивает ввод команды и показывает вывод.

Текстовая версия Emacs обрабатывает окна иначе, чем его версия с графическим интерфейсом. В отличие от приложений с графическим интерфейсом, текстовые окна Emacs не всплывают, поскольку физически не могут этого сделать в сеансе терминала или консоли. Когда Emacs нужно открыть новое окно, его основной буфер разделяется на две части, как два фрейма в браузере. Верхняя половина показывает основной буфер, а нижняя половина отображает новое содержимое. Примером того, как Emacs порождает новое окно, является обращение к его файлам справки или руководствам.

Доступ к меню

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

В отличие от программ с графическим интерфейсом, текстовые меню нельзя открыть одним щелчком мыши. На самом деле, вы не можете выделять и прокручивать меню с помощью сочетания клавиш.

Чтобы получить доступ к меню, нажмите клавишу F10. Это открывает другое окно под основным буфером и отображает список клавиш для доступа к пунктам меню. Мини-буфер предложит ввести необходимый ключ. Как только вы нажмете эту клавишу, содержимое нового окна изменится, отражая следующий уровень параметров.

Чтобы выйти из меню, независимо от того, насколько глубоко вы находитесь, нажмите клавишу ESC три раза. Обычно это закрывает окно меню и возвращает вас в основной буфер.

Вот некоторые параметры, доступные в меню Инструменты:

  • Календарь
  • Простой калькулятор
  • Программируемый калькулятор
  • Поиск в каталоге
  • Шифрование и расшифровка документа
  • Отправлять и читать электронные письма
  • Поиск файлов с помощью grep
  • Проверка правописания
  • Выполнение команд оболочки и компиляция кода
  • Контроль версий
  • Сравнить и объединить файлы
  • Игры

Доступ к справке и руководствам

Emacs имеет обширную справочную систему наряду с учебными пособиями. Чтобы получить к нему доступ, вы можете либо использовать меню, нажав F10, а затем с помощью клавиш со стрелками ВПРАВО или ВЛЕВО выбрать Справка или нажмите CTRL+H, а затем соответствующую клавишу. Например, вы можете ввести одну из следующих клавиш после нажатия CTRL+H для просмотра часто задаваемых вопросов, руководств, новостей и других тем:

  • t для входа в учебник по Emacs
  • CTRL+F для часто задаваемых вопросов
  • CTRL+P, чтобы узнать об известных ошибках и проблемах
  • CTRL+R, чтобы прочитать руководство по Emacs
  • CTRL+E, чтобы найти дополнительные пакеты

Шаг 3 – Использование командных клавиш

Теперь, когда вы знакомы с пользовательским интерфейсом, вы можете начать знакомиться с командными клавишами Emacs. Когда вы открываете файл, вы можете начать вводить текст и выдавать команды одновременно.

Командные функции обычно включают две или три клавиши. Чаще всего используется клавиша CTRL, за которой следует клавиша ALT или ESC. CTRL отображается в краткой форме как \C в среде Emacs. Примечания в Emacs, такие как C-x C-c, означают, что вы нажимаете CTRL+X вместе, затем нажмите CTRL+C. Аналогично, C-h t означает одновременное нажатие CTRL+H, затем отпустите обе клавиши и нажмите t.

Клавиши ALT и ESC в Emacs называются клавишами meta. На компьютерах Apple вместо ALT используйте клавишу OPTION. На других клавиатурах используется клавиша EDIT. Подобно клавише CTRL, Emacs использует многоклавишные функции с метаклавишей. Например, такое обозначение, как M-x, означает, что вы одновременно нажимаете ALT или OPTION и x. Точно так же вы можете использовать ESC+X для выполнения той же команды.

Клавиша ENTER отображается как RET в Emacs, что является сокращением от return. Клавиша ESC часто отображается как E.

Клавишу ESC можно использовать для отмены команды или приглашения. Например, вы можете нажать ESC несколько раз, чтобы выйти из определенного меню. Другой способ отменить операцию — нажать CTRL+G.

Сохранение и выход

После того как вы внесли некоторые изменения в документ или написали текст, вы можете сохранить его, нажав CTRL+X, а затем CTRL+S. Мини-буфер выведет следующее сообщение:

Output
Wrote /home/sammy/myfile.txt

Вы можете выйти из Emacs, нажав CTRL+X, затем CTRL+C.

Если он не сохранил файл вручную перед выходом, вы получите это сообщение:

Output
Save file /home/sammy/myfile.txt? (y, n, !, ., q, C-r, C-f, d or C-h)

Нажмите Y, чтобы сохранить файл.

Если вы нажмете N для отказа, вы получите следующее сообщение:

Output
Modified buffers exist; exit anyway? (yes or no)

Введите yes, чтобы выйти без сохранения.

Навигация по тексту

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

Вот список некоторых общих функций навигации:

To perform this function Use these keys
Moving to the next line CTRL+N (N for Next)
Moving to the previous line CTRL+P (P for Previous)
Moving one character forward CTRL+F (F for Forward)
Moving one character backward CTRL+B (B for Backward)
Moving one word forward META+F (F for Forward)
Moving one word backward META+B (B for Backward)
Moving to the start of a line CTRL+A
Moving to the end of a line CTRL+E (E for End)
Moving to the start of a sentence META+A
Moving to the end of a sentence META+E (E for End)
Moving one page down CTRL+V (or PgDn)
Moving one page up META+V (or PgUp)
Moving to the beginning of the file META+< (Alt + Shift + “<”)
Moving to the end of the file META+> (Alt + Shift + “>”)

Помните, что META означает, что вы можете использовать любую из следующих клавиш: ALT, ESC, OPTION или ИЗМЕНИТЬ.

Шаг 4 – Редактирование функций

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

Маркировка текстовых областей

Чтобы отметить текстовую область, выполните следующие действия:

  • Переместите курсор в положение, с которого вы хотите начать выделение. Вы можете использовать любой из методов, описанных ранее, для перемещения курсора.
  • Нажмите CTRL+ПРОБЕЛ или CTRL+@, чтобы установить метку, чтобы начать выделение текста. Мини-буфер покажет сообщение о состоянии Mark Activated.
  • Переместите курсор в то место, где вы хотите, чтобы область заканчивалась. С помощью любой из комбинаций клавиш, описанных ранее.
  • Текст будет выделен до того места, где сейчас находится ваш курсор.
  • Дважды нажмите CTRL-ПРОБЕЛ или CTRL+@, чтобы снять выделение с выделенного текста. Мини-буфер покажет сообщение о состоянии Mark Deactivated.

Кроме того, как и в текстовом процессоре, вы можете удерживать клавишу SHIFT и перемещать курсор с помощью клавиш со стрелками UP или DOWN на клавиатуре, чтобы сделать ваш выбор.

Если вы хотите выделить абзац, на котором в данный момент находится курсор, нажмите META+H. После этого непрерывное нажатие META+h выделит следующие абзацы в текстовом файле.

Если вы хотите выделить все содержимое основного буфера (т. е. \выбрать все), нажмите CTRL+X, затем h.

Вырезание, копирование и вставка текста

Подобно текстовому процессору, вы можете копировать, вырезать и вставлять текст:

  • Чтобы скопировать выделенный текст, нажмите META+W.
  • Чтобы вырезать выделенный текст, нажмите CTRL-W.
  • Чтобы вставить выделенный текст, нажмите CTRL-Y.

Удаление текста

Удаление текста с помощью клавиш Backspace и Delete работает так, как вы ожидаете.

Чтобы быстро удалить целое слово, переместите курсор в начало слова и нажмите META+D. Чтобы удалить несколько слов, нажмите и удерживайте клавишу META и непрерывно нажимайте D. Слова будут удаляться одно за другим.

Чтобы удалить целую строку, поместите курсор в нужное место и нажмите CTRL+K. Это удаляет текст прямо до конца строки.

Чтобы удалить предложение, нажмите META+K. Обратите внимание, однако, что Emacs удалит целую строку или больше, если после точки нет двух пробелов. Два пробела после точки — это то, как Emacs определяет, когда предложение разбито на несколько строк.

Отмена и повтор

Вы можете отменить последнюю операцию, нажав CTRL+X, а затем u. Альтернативной комбинацией клавиш является CTRL+_ (здесь нужно нажать клавишу CTRL, SHIFT и -, чтобы выполнить подчеркивание).

Чтобы повторить последнюю отмену, нажмите CTRL+G, а затем CTRL+_.

Поиск и замена текста

В Emacs есть два направления поиска: вперед и назад. При прямом поиске указанное вами слово будет искаться вперед от текущей позиции курсора. Для обратного поиска все наоборот.

  • Нажмите CTRL+S для прямого поиска. Затем введите текст, который вы ищете, в подсказке мини-буфера.
  • Нажмите CTRL+R для поиска в обратном направлении.

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

Например, поиск слова «кошка» в текстовом файле покажет каждое вхождение в основном буфере в виде выделенного текста:

Чтобы заменить текст, выполните следующие действия:

  • Нажмите META+%. Мини-буфер запросит текст для поиска с помощью Query replace:.
  • Введите заменяемый текст и нажмите ENTER.
  • Мини-буфер отобразит Query replace your_search_term на:.
  • Введите слово или фразу, которой вы хотите заменить your_search_term, и нажмите ENTER.
  • Каждое совпадение будет выделено, и вам будет предложено произвести замену. Мини-буфер запросит Query, заменяющий your_search_word на your_replacement_word: (C-h для справки).
  • Нажмите y, чтобы заменить текущее найденное совпадение.
  • Нажмите n, чтобы перейти к следующему совпадению.
  • Нажмите q, чтобы выйти без каких-либо замен.
  • Нажмите !, чтобы выполнить глобальную замену без каких-либо подсказок. Мини-буфер выдаст следующее сообщение: replaced number вхождений.

Добавление выравнивания по левому, правому краю и по центру

Чтобы центрировать строку, переместите курсор в начало этой строки и нажмите META+O, затем META+S.

Чтобы выровнять выделенную текстовую область, выполните следующие действия:

  • Выделите текст, который вы хотите оправдать.
  • Нажмите META+X. Мини-буфер будет ожидать ответа.
  • Введите set-justification- и нажмите клавишу TAB.
  • Вам будут предоставлены следующие варианты завершения: set-justification-center, set-justification-left, set-justification-right, set-justification-none и set-justification-full.
  • Завершите команду выравнивания, выбрав set-justification-right или один из вариантов по вашему выбору, затем нажмите ENTER.
  • Выбранный текст будет выровнен в выбранном вами направлении.

Вот пример текста, назначенного различным настройкам выравнивания:

Преобразование дела

Вы можете преобразовать регистр с помощью нескольких различных команд. Вот список некоторых командных клавиш:

To perform this function Use these keys
Capitalizing a word after the cursor META+C (C for capitalize)
Converting a word to lowercase META+L (L for lowercase)
Converting a word to uppercase META+U (U for uppercase)
Converting a paragraph to uppercase Block select, then CTRL+X CTRL+U
Converting a paragraph to lowercase Block select, then CTRL+X CTRL+L

Если вы переводите полный абзац или более в верхний или нижний регистр, вам будет предоставлено новое окно и сообщение:

Window
You have typed C-x C-l, invoking disabled command downcase-region. It is disabled because new users often find it confusing. Here’s the first part of its description: Convert the region to lowercaselower case. In programs, it wants two arguments.These arguments specify the starting and ending character numbers of the region to operate on. When used as a command, the text between point and the mark is operated on. Do you want to use this command anyway? You can now type 'y' to try it and enable it (no questions if you use it again). 'n' to cancel--don’t try the command, and it remains disabled. 'SPC' to try the command just this once, but leave it disabled. '!' to try it, and enable all disabled commands for this session only.

Продолжайте, нажимая указанные клавиши.

Управление Windows

Управление окнами в Emacs может помочь вам более эффективно работать с вашими файлами.

Например, из основного буфера переключитесь на учебник по Emacs, нажав CTRL+h, а затем t. Ваше главное окно буфера теперь является учебным пособием по Emacs. Если вы хотите вернуться к буферу myfile.txt, нажмите CTRL+X, а затем b. Это команда переключить буфер. Emacs запросит у вас имя буфера для переключения. Начните вводить имя буфера, myfile.txt, и нажмите ENTER. Это приведет вас от руководства по Emacs к указанному вами файлу.

Шаг 5 – Ввод режимов

Вход в основной режим

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

В зависимости от выбранного режима Emacs можно использовать в качестве текстового процессора для записи текстовых файлов или адаптировать для сложных задач, таких как написание кода на Python, C или Java. Например, вы можете изменить режим Emacs, чтобы заставить его работать с системами контроля версий, запускать команды оболочки или читать справочные страницы.

Есть два разных типа режимов Emacs. Один из них называется основной режим. В основном режиме Emacs можно использовать как интегрированную среду разработки (IDE) для языков программирования или сценариев. В этом режиме программа предлагает специализированные функции, такие как цветовая подсветка синтаксиса, отступы и форматирование, параметры меню для конкретных языков или автоматическое взаимодействие с отладчиками и компиляторами.

Для демонстрации вы можете написать приложение «Hello World» на Python, используя Emacs.

Внутри вашего терминала и в корневом каталоге введите следующие команды:

  1. cd ~
  2. emacs hello.py

Emacs распознает расширение файла и запустится в режиме Python. В основной буфер введите следующий код Python:

print "hello world!\n"

Ключевые слова теперь обозначаются цветовой подсветкой синтаксиса. Также обратите внимание, что строка состояния над мини-буфером показывает режим, в котором вы сейчас находитесь. В главном меню также есть отдельная запись специально для Python:

Сохраните буфер с помощью CTRL+X CTRL+S.

Чтобы изменить основной режим из Emacs, нажмите META+X. Мини-буфер будет ждать вашего ответа. Затем вы можете войти в другой режим. Вот несколько примеров основных режимов:

  • c-режим
  • режим Python
  • java-режим
  • html-режим
  • perl-режим
  • режим сценария оболочки
  • текстовый режим

Вход в второстепенный режим

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

Примером второстепенного режима является опция установки выравнивания, использованная в предыдущих примерах.

Другим примером второстепенного режима является режим автозаполнения. Чтобы войти в этот режим в редакторе Emacs, нажмите клавишу META+X, затем введите режим автозаполнения.

Этот режим позволяет разрывать строку текста и переносить ее на следующую строку, когда ее длина превышает 70 символов. Помните, что когда вы вызываете второстепенный режим, это очень похоже на тумблер. Повторный вызов той же команды отключит перенос строки.

Вот еще несколько примеров второстепенных режимов:

  • auto-save-mode: переключает свойство автоматического сохранения, которое периодически сохраняет содержимое основного буфера за сценой.
  • line-number-mode: переключает отображение текущего номера строки в строке состояния.
  • linum-mode: переключает отображение номеров строк вдоль левого края окна.
  • column-number-mode: показывает текущую позицию курсора в строке состояния.
  • overwrite-mode: это похоже на нажатие клавиши INS на клавиатуре. При включении он будет перезаписывать текст справа от курсора по мере ввода.
  • menu-bar-mode: это может включать или выключать главное меню.

Заключение

Из этого руководства вы узнали о различных командах, функциях редактирования и режимах в Emacs.

Чтобы лучше понять редактор Emacs, веб-страница GNU Emacs содержит множество информации, включая ссылки на другие ресурсы, такие как руководство по GNU Emacs.