Было бы хорошо если бы изучая Ленкцию можно было скачать файлы, используемые для тренировки в терминале. (lesson6_st.txt и т.п.) |
Текстовые редакторы. Редактор Emacs
Ход занятия
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 ), то редактор не запросит подтверждения сохранения данных, и все новые данные будут потеряны.
Для перемещения курсора используйте схему:
Современные терминалы понимают также перемещение курсора более привычным для нас способом – с помощью клавиш управления курсором.
Если есть необходимость более быстрого перемещения, используйте <alt+f> для перемещения на слово вперед и <alt+b> для перемещения на слово назад, <Ctrl+a> в начало строки и <Ctrl+e> в конец строки, <alt+a> в начало предложения и <alt+e> - в конец предложения, Alt+< - в начало текста и Alt+> - в конец текста (для набора знаков < и > используйте <Shift>).
Если Вы хотите вставить текст, просто наберите символы, и они отобразятся в редактируемом документе. Удаляется текст с помощью клавиш <Del> и <Backspace>, однако клавиша <Backspace> есть не на всех терминалах (в отличие от <Del> ). Если же Ваш терминал не поддерживает этих клавиш, то Вы можете воспользоваться комбинациями: <Ctrl+d> удалит символ под курсором (аналог <Del> ), <alt+d> удалит слово следующее, за курсором, <Ctrl+k> - все от курсора до конца строки, <alt+k > - до конца предложения.
Для вставки только что удаленного текста воспользуйтесь командой <Ctrl+y>.Для вставки сохраняется только текст, удаленный командами группового удаления (то есть теми, которые удаляют сразу большую порцию текста, а не один символ).
Существует в Emacs и команда отката. Это комбинация <Ctrl+x> <u>.
Для повторения команд редактирования может использоваться счетчик повторения – команда <Ctrl+u>.Действует она следующим образом:
- <Ctrl+u> 8 <u> - произведет откат на 8 действий.
- <Ctrl+u>7 <Ctrl+d> - удалит 7 символов
Для сохранения сделанных изменений, используйте <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+x><Ctrl+k>
Поиск по файлу осуществляется командой <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>.