Учебное пособие по GNU Emacs: как редактировать файл (включена шпаргалка)
Опубликовано: 2016-01-26Short Bytes: Хотите изучить основы текстового редактора Emacs? Ну, вот базовый учебник для вас, чтобы начать работу. Для тех, кто не знает, GNU Emacs — широко популярный текстовый редактор с широким набором функций.
Итак, что такое Emacs?
GNU Emacs, или вообще просто Emacs, является расширяемым, настраиваемым, самодокументирующимся редактором отображения в реальном времени в соответствии с его справочной страницей. Это больше, чем просто текстовый редактор. Его можно использовать для просмотра электронной почты, просмотра веб-страниц, компиляции и запуска программ, тестирования программного обеспечения (с использованием gdb) и управления файлами. Ради этого поста мы будем использовать его как текстовый редактор.
Редактировать в Emacs так сложно?
Нет, совсем нет. Вы можете редактировать свои файлы, используя только мышь и клавиатуру, без каких-либо ярлыков. Так же, как Блокнот. Видимо малоэффективно. Вам нужны ярлыки для некоторых частых задач, а в Emacs их миллионы.
Давайте немного отредактируем…
Откройте файл в Emacs
Хорошо. Нажмите Ctrl-x Ctrl-f
. Затем введите имя файла. Вы можете видеть имя файла по мере ввода в нижней строке экрана (так называемый минибуфер). Там также работает завершение Tab
.
Кроме того, можно также открыть файл, используя раскрывающееся меню файла или значок открытия файла (верхний левый угол фрейма Emacs), или просто дважды щелкнув файл.
Базовое движение курсора
Emacs поддерживает перемещение курсора с помощью клавиш со стрелками, но всегда лучше держать пальцы в стандартном положении на клавиатуре. Вот список привязок клавиш для базового перемещения по тексту.
Ctrl-p:
перейти на предыдущую строку
Ctrl-n:
перейти к следующей строке
Ctrl-f:
перейти на один символ вперед
Ctrl-b:
перейти назад на один символ
Ctrl-e:
перейти в конец строки
Ctrl-a:
перейти к началу строки
У большинства этих ярлыков есть Meta
-двоюродные братья. Как Ctrl-f
перемещает курсор вперед на один символ, Meta-f
перемещает курсор вперед на одно слово. Meta
отображается как Alt
на большинстве клавиатур.
Немного терминологии перед следующим разделом
В Emacs понятие буферов очень распространено. Как правило, когда вы открываете файл, говорят, что он находится в буфере. Любые изменения, которые вы вносите в этот файл, существуют в буфере. Если вы не сохранили эти изменения, они не появятся на диске. Emacs поддерживает одновременное редактирование нескольких буферов. То есть вы можете загружать несколько файлов в буферы Emacs и переключаться между ними, не теряя сделанных вами изменений.
Понятие окон в Emacs отличается от других широко используемых программ. В Emacs можно разделить экран на несколько окон, каждое из которых имеет собственный буфер. Обратите внимание, что оба окна имеют один и тот же экран, одни и те же файловые меню и одни и те же кнопки закрытия и свертывания. В общем смысле оба существуют в одном окне.
То, что другие программы называют окном, Emacs называет их фреймами. То есть у каждого кадра есть свои разные файловые меню и кнопки закрытия.
Многооконное редактирование в Emacs
Редактирование в нескольких окнах — одна из тех функций, которые мне больше всего нравятся в Emacs. В Emacs есть несколько сочетаний клавиш многооконного редактирования. Я постараюсь сократить это до минимума. Просто редактировать два файла одновременно.
Сначала откройте файл с помощью Ctrl-x Ctrl-f,
затем имя файла. Затем нажмите Ctrl-x 2
. Это разделит окно на два, одно под другим. Первоначально оба окна отображают один и тот же буфер. Для переключения между окнами нажмите Ctrl-x o
. Откройте другой файл во втором окне и редактируйте оба одновременно. Кроме того, Emacs может отображать несколько окон параллельно. Для этого нажмите Ctrl-x 3.
Чтобы убить второе окно, т.е. отобразить только одно окно в кадре, нажмите Ctrl-X 1.
Когда вы уничтожаете окно, связанный с ним буфер не уничтожается. Другими словами, любые изменения, внесенные вами во второе окно, не будут потеряны. Этот буфер просто скрыт. Чтобы переключаться между буферами, прочитайте следующий раздел.
Переключение между буферами
Новичку идея нескольких буферов может показаться не совсем интуитивной. Ну, я этого не сделал. Раньше я открывал один файл, вносил в него изменения, сохранял, закрывал, открывал другой. Даже для справки вам нужно сначала сохранить и закрыть или открыть другое окно текстового редактора (т. е. фрейм в контексте Emacs), чтобы просмотреть другой файл. Поверьте мне, несколько буферов могут сделать задачи намного проще и эффективнее.
Переключение между открытыми буферами в Emacs довольно простое. Нажмите Ctrl-x b,
затем введите имя буфера. Для таких задач можно использовать завершение tab
. Либо нажмите Ctrl-x Ctrl-b.
Это откроет другое окно со списком буферов. Чтобы закрыть это окно, вы знаете, что нужно сделать. Вы можете увидеть некоторые ранее существовавшие буферы, такие как TUTORIAL, *Messages* и т. д. Их использование станет очевидным, когда вы их откроете.
Сохранение файла в Emacs
Это, пожалуй, самая важная задача. Emacs достаточно умен, чтобы не потерять ваши изменения, когда вы выходите без сохранения или после сбоя питания. Если вы не сохранили свои изменения и Emacs закрыт по какой-либо причине, по умолчанию создается новый файл с именем #filename.txt# . Этот файл содержит все ваши несохраненные изменения. Тем не менее, лучше не рисковать, когда в этом нет необходимости, и сохранять файлы перед выходом.
Чтобы сохранить изменения, внесенные в буфер, нажмите Ctrl-x Ctrl-s.
Либо нажмите Ctrl-x Ctrl-w,
чтобы сохранить файл под другим именем.
Разнообразный:
Еще несколько сокращений и возможностей Emacs, которые могут оказаться полезными.
Отмена команды
Если вы застряли в области минибуфера из-за частично введенной команды или по любой другой причине, нажмите Ctrl-g
, чтобы выйти из этой операции. Кроме того, троекратное нажатие клавиши Esc
( Esc Esc Esc)
также приводит к отмене частичной операции.
Searching
Чтобы найти ключевое слово или фразу, нажмите Ctrl-s
и введите ключевое слово. Ключевое слово по мере ввода будет отображаться в минибуфере (самая нижняя строка). Emacs выполняет пошаговый поиск ключевого слова, то есть он начинает поиск, как только вы набираете первый символ. Чтобы найти следующее вхождение ключевого слова, снова нажмите Ctrl-s
.
Выход сразу
Можно выйти из Emacs, нажав кнопку закрытия (X), отображаемую вверху (где бы она ни отображалась в вашем DE). Поскольку в этом посте мы говорим только о командной строке, нажатие Ctrl-x Ctrl-c
делает то же самое. Хотя он отображает предупреждение в минибуфере, если у вас есть несохраненные буферы. Достаточно нажать там y или n.
Прокрутка
Прокрутка строки описана выше, т.е. нажатие Ctrl-n
или Ctrl-p.
Для прокрутки страницы нажмите Ctrl-v
или Meta-v
.
Заключение
Я попытался описать некоторые наиболее часто используемые сочетания клавиш и базовое редактирование файлов в Emacs. То, что я описал, является лишь частью того, что вы можете делать с Emacs. Тем не менее этого было бы достаточно для начала работы с Emacs. Я буду публиковать больше о Emacs по мере того, как буду узнавать больше и находить функции, которые стоит опубликовать.
Если вы начали изучать Emacs и вам он понравился, я настоятельно рекомендую прочитать вводное руководство, поставляемое с Emacs.
Памятка по Emacs
Распечатайте эту шпаргалку (Emacs Cheat Sheet) и попробуйте выполнять операции, используя только комбинации клавиш. Старайтесь максимально избегать использования мыши, и вы увидите, насколько эффективным станет редактирование текста.
Считаете ли вы этот базовый учебник по Emacs полезным? Сообщите нам свое мнение в комментариях ниже.