Занятие 11.
Тема: Текстовые редакторы. Редактор Emacs.
Вид занятия: лекция, практическое занятие.
Учебные вопросы:
1. Редактор Emacs.
Время: 90 минут
Литература:
1. Системная справочная служба Linux Man
2. Шевель А. “Linux. Обработка текстов. Специальный справочник.” -
Спб.: Питер, 2001. - 384 с.:ил.
Ход занятия.
Emacs представляет собой мощный экранный редактор текста с массой возможностей. Его можно считать средой программирования с большими возможностями редактирования текста, т.к. Emacs предлагает массу встроенных функций по компиляции и поиску ошибок в коде. Есть несколько разновидностей Emacs. Мы с вами будем рассматривать GNU Emacs.
Emacs написан на языке высокого уровня Elisp. Хотя для конфигурации и работы с редактором знание Elisp не требуется, но если Вы возьметесь за создание специфических функций обработки текста, то без знания языка Вам не обойтись.
Для работы с emacs используется система меню и комбинаций клавиш. Используются сочетания c клавишами <ctrl> и <meta>. Так как на клавиатуре для IBM PC совместимых ПК клавиши <meta> нет, то вместо нее можно использовать <alt> или <esc>. Для доступа к системе меню используйте клавишу F10.
Для запуска Emacs наберите в командной строке emacs <имя_файла>. Параметр имя_файла необязателен. Если он не указан, то будет открыт для редактирования новый файл. Если установлена переменная $DISPLAY (то есть открыт графический сеанс X), то Emacs попытается открыть графическое окно программы на экране, указанном в переменной $DISPLAY, в противном случае будет работать в текстовом режиме.
Чтобы открыть файл для редактирования, наберите команду <Ctrl+x> <Ctrl+f> и введите в появившейся строке имя файла, который Вы собираетесь открыть.
Для отмены набранной команды открытия или сохранения файла, нажмите <Ctrl+g>.
Для завершения работы с редактором используйте комбинацию клавиш <Ctrl+x> <Ctrl+c> или пункт меню F10-File-Exit Emacs. Перед выходом из редактора сохраните редактируемый документ. Если вы не используете систему меню (F10), то редактор не запросит подтверждения сохранения данных, и все новые данные будут потеряны.
Для перемещения курсора используйте схему:
Предыдущая строка, Ctrl+p
:
:
Назад, Ctrl+b .... Текущая позиция курсора .... Вперед, Ctrl+f
:
:
Следующая строка, Ctrl+n
Современные терминалы понимают также перемещение курсора более привычным для нас способом - с помощью клавиш управления курсором.
Если есть необходимость более быстрого перемещения, используйте <Alt+f> для перемещения на слово вперед и <Alt+b> для перемещения на слово назад, <Ctrl+a> в начало строки и <Ctrl+e> в конец строки, <Alt+a> в начало предложения и <Alt+e> - в конец предложения, Alt+< - в начало текста и Alt+> - в конец текста (для набора знаков < и > используйте <Shift>).
Если Вы хотите вставить текст, просто наберите символы, и они отобразятся в редактируемом документе. Удаляется текст с помощью клавиш <Del> и <Backspase>, однако клавиша <Backspace> не на всех терминалах (в отличие от <Del>). Если же Ваш терминал не поддерживает этих клавиш, то Вы можете воспользоваться комбинациями: <Ctrl+d> удалит символ под курсором (аналог <Del>), <Alt+d> удалит слово следующее, за курсором, <Ctrl+k> - все от курсора до конца строки, <Alt+k> - до конца предложения.
Для вставки только что удаленного текста воспользуйтесь командой <Ctrl+y>. Для вставки сохраняется только текст, удаленный командами группового удаления (то есть теми, которые удаляют сразу большую порцию текста, а не один символ).
Существует в Emacs и команда отката. Это комбинация <Ctrl+x> <u>.
Для повторения команд редактирования может использоваться счетчик повторения - команда <Ctrl+u>. Действует она следующим образом:
Для сохранения сделанных изменений, используйте <Ctrl+x> <Ctrl+s>. Если Вы редактируете новый файл, то Emacs запросит имя файла для сохранения. Если Вам необходимо сохранить файл под другим именем, наберите <Ctrl+x> <Ctrl+w>.
Вы можете открыть несколько файлов с помощью команды <Ctrl+x> <Ctrl+f> и каждый из них будет помещен во внутренний буфер Emacs. Для переключения между файлами используйте всё ту же команду <Ctrl+x> <Ctrl+f>. При вводе имени уже открытого файла он не будет перечитан диска, а просто будет переключен активный буфер. Второй способ переключения между буферами в комбинации клавиш <Ctrl+x> <b>. При этом вам нужно будет ввести имя редактируемого в буфере файла в минибуфер внизу экрана без указания полного пути к нему. Для закрытия текущего буфера используйте <F10> <f> <c>. Для очистки буфера (удаления всего содержимого) <Ctrl+x> <k>
Для отображения списка всех открытых буферов используйте команду <Ctrl+x> <Ctrl+b>. Emacs позволяет одновременно использовать несколько окон редактирования. Для открытия второго окна нажмите <Ctrl+2>. При этом экран разделится на 2 части и обех будет загружен текущий буфер. Нажмите <Ctrl+x> <o> для перехода в соседнее окно и выполните там команду <Ctrl+x> <Ctrl+f> или <Ctrl+x> <b> для изменения активного буфера. Теперь Вы можете редактировать два разных текста одновременно видя их на экране. Для возврата к одному окну нажмите <Ctrl+x> <1> (1 - это единица), а для закрытия текущего окна - <Ctrl+x><0>.
Для сохранения нескольких буферов наберите <Ctrl+x> <s>. Emacs будет спрашивать Вас перед сохранением каждого буфера, в котором есть измененные данные. Для того чтобы закрыть буфер без сохранения (убить буфер)
Поиск по файлу осуществляется командой <Ctrl+s>. После набора команды в строке минибуфера вы введете искомое слово. При этом Emacs уже найдет его первое вхождение в тексте. Для поиска следующего вхождения нажмите еще <Ctrl+s> раз. Для поиска в обратном направлении, используйте <Ctrl+r>. Когда Emacs достигнет конца (или начала) документа, он подаст звуковой сигнал. Если Вы повторите команду <Ctrl+s> или <Ctrl+r>, то Emacs продолжит поиск с начала (или с конца) документа. Необходимо знать, что Emacs начинает поиск с текущей позиции курсора в буфере. Если необходимо найти все вхождения, то Вам стоит либо перейти к началу документа, либо позволить Emacs'у поиск “по кругу”, проигнорировав звуковой сигнал конца (начала) файла.
Замена осуществляется по команде <Alt+%> (при этом % стоит набирать с шифтом). Emacs будет искать вхождения и спрашивать - пробел является подтверждением, <Del> или <Esc> - служат прерыванием.
Встроенная справка Emacs позволяет получать помощь по тем или иным командам. Для получения краткой справки по команде введите: <Ctrl+h> <c> <команда>, так например для получения справки по команде <Ctrl+2> необходимо ввести: <Ctrl+h> <c> <Ctrl+2>.
Для отображения полной справки по команде нужно использовать параметр <k> для команды <Ctrl+h>, например <Ctrl+h> <k> <Ctrl+p> открывает в отдельном окне справку по команде <Ctlr+p>.