Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика.doc
Скачиваний:
24
Добавлен:
14.05.2015
Размер:
1.85 Mб
Скачать

Клавиатурные макросы

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

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

Команда

Назначение

C-x (

Начать ввод макроса

C-x )

Закончить ввод макроса

C-x e

Выполнить макрос

Макрос сохраняется в памяти редактора до тех пор, пока не будет определен новый макрос. Если вы хотите сохранить макрос клавиатуры дольше, чем до следующего определения, то ему нужно дать имя командой M-x name-last-kbd-macro. Введите команду (можно пользоваться клавишей Tab для автопродолжения), нажмите Enter, затем введите имя макроса. Для выполнения именованного макроса наберите M-x и имя макроса.

Рассмотрим на примерах приемы создания макросов.

Пример

Заменить указанную букву в тексте многоточием, а саму букву поместить в конце слова, окружив ее фигурными скобками, например, для буквы "о" в слове "выполнить" получить "вып...лнить{о}". Для этого необходима следующая последовательность команд:

 1)   переместиться к требуемой букве;

 2)   C-x ( -- начать ввод макроса;

 3)   стрелка вправо;

 4)   C-пробел -- установить метку;

 5)   стрелка влево;

 6)   C-w -- удалить все с текущей позиции до метки;

 7)   ... -- вставить три точки;

 8)   M-f -- переместиться к концу слова;

 9)   { -- ввести левую фигурную скобку;

10)   C-y -- вставить последний уничтоженный текст;

11)  } -- ввести правую фигурную скобку;

12)   C-x ) -- закончить ввод макроса.

После этого можно выполнить макрос при помощи комбинации клавиш C-x e. Сохраним данный макрос под именем one.

Теперь создадим макрос для обратной задачи: вставить вместо многоточия '...' в слове букву, стоящую в фигурных скобках в конце слова, т. е. заменить "вып...лнить{o}" на "выполнить". Приведем макрос, решающий данную задачу.

1. C-x ( 5. C-r ... 9. Backspace

2. C-s { 6. Enter 10. стрелка влево

3. стрелка влево 7. C-y 11. Backspace

4. C-k 8. Esc 3 C-d 12. C-x )

Отметим, что команда Esc 3 C-d трижды выполняет операцию удаления символа. Сохраним макрос под именем two.

Мы получили два макроса, выполняющие взаимно обратные преобразования. Убедитесь в этом, последовательно выполнив один макрос за другим: для выполнения первого наберите M-x one, для второго -- M-x two.

Дополнительные возможности

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

Сначала отметим одну удобную возможность, предоставляемую редактором -- это автопродолжение при вводе команд в строке минибуфера. Набрав начало длинной последовательности символов, воспользуйтесь клавишей Tab для показа возможных продолжений команды.

Emacs может работать и как настольный календарь. Чтобы войти в этот режим, наберите M-x calendar. Окно разделится на два, в нижнем из них будет показан календарь на три месяца, отцентрированный на текущем месяце с выделенной текущей датой. Изображение календаря автоматически прокручивается, когда вы сдвигаетесь за пределы видимой части. Ниже перечислены некоторые команды для работы с календарем.

Команда

Назначение

o

Запрашивает месяц и год, а затем центрирует трехмесячный календарь вокруг этого месяца

p d

Выводит номер выбранного дня в году

Shift+s

Показывает времена восхода и заката Солнца

Shift+m

Выводит даты и времена всех четвертей Луны для показанного трехмесячного периода

q

Выходит из календаря

Если вы заскучали, можете попробовать M-x hanoi. Как видно из названия команды -- это реализация известной головоломки "Ханойская башня". Если вам очень скучно, то задайте численный аргумент, например, M-x hanoi 5.

Игра в крестики-нолики на бесконечной доске потребует от вас личного участия. Она запускается командой M-x gomoku; выигрывает тот, кто сумеет построить ряд из 5 элементов.

M-x dunnet запускает большую приключенческую игру.

Если вас расстроили, запустите знаменитую программу Eliza (пример программы, моделирующей искусственный интеллект). Она выполняет функции психотерапевта, который готов помочь вам разобраться в ваших проблемах. Введите M-x doctor для запуска, а каждый свой ответ доктору заканчивайте двойным нажатием на клавишу Enter. Завершить сеанс общения с психотерапевтом следует при помощи команды quit.

Задания

  • Запустите информационную систему и просмотрите документацию к командам Emacs.

  • Создайте директорию Text и установите для нее следующие права доступа: для себя -- чтение, запись, выполнение; для остальных -- выполнение. Скопируйте в данную директорию файлы notepad.txt, kedit.txt, kwrite.txt. Переименуйте файл notepad.txt в файл windows.txt

  • Создайте и выполните макросы для выполнения следующих действий:

    1. добавление десяти пробелов в начало каждой строки;

    2. удаление каждого второго слова.