Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SppoLabs.doc
Скачиваний:
23
Добавлен:
27.03.2015
Размер:
315.39 Кб
Скачать

3.5. Мобильные платформы

3.6. Регулярные выражения

3.7. Редакторы vim, emacs

Лабораторная работа 3.7_L. Инструментарий разработчика. Редакторы vim, emacs.

Цель. Освоение основных инструментов для создания приложений. Приобретение навыков работы с консольными текстовыми редакторами.

Общие сведения.

В отличие от Windows для UNIX–совместимых операционных систем большая часть программного обеспечения распространяется в исходных кодах. Поэтому не только для разработчика, но и для конечного пользователя становится актуальным умение компилировать и собирать проекты из исходных текстов.

Подавляющая доля ПО для Linux написана на C или C++, для компиляции используются компиляторы gcc и gpp соответственно. Для сборки исполняемого файла из объектных модулей необходим компоновщик link.

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

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

В UNIX–системах для работы с текстом традиционно используются редакторы vi и emacs.

В vi существует три принципиально различных режима работы: командный, или визуальный (visual command mode), именуемый также нормальным, режим ввода (edit mode) и т.н. ex-режим, который по-русски именуется еще и режимом ввода команд. Кроме того, в Vim (но не в классическом vi) дополнительно выделяется еще режим визуального выделения, или выбора.

Действия, которые в большинстве редакторов доступны из меню (или по горячим клавишам), в vi осуществляются вводом команд. Это усложняет освоение редактора, но обеспечивает более быструю работу по сравнению с меню.

В первую очередь при работе понадобятся такие команды как: открытие существующего файла (:edit имя_файла, здесь и далее символ : указывает на принадлежность команды к командному режиму); если какой-либо файл перед этим уже загружен, он будет закрыт и замещен новым; если же изменения в нем не были сохранены – последует сообщение об ошибке; вставка существующего файла в позицию курсора (:read имя_файла); запись файла (:write), в том числе под другим именем (:write имя_файла); выход из редактора (:quit), происходящий, если текущий файл не изменялся или был предварительно сохранен; выход из редактора с предварительным сохранением измененного файла (:xit – от exit).

Вопросы для изучения.

1. Синтаксис gcc.

2. Форматы объектных файлов (coff, elf).

3. Синтаксис link.

4. Язык make-файла.

5. Режимы редактора.

6. Команды навигации.

7. Команды редактирования.

8. Поиск и замена.

9. Макроопределения.

Задание.

1. Создайте два файла с исходными текстами программы на языке C. Первый файл должен содержать функцию для вычисления факториала, второй файл — функцию main считывает число со stdin и записывает его факториал в stdout.

2. Откомпилируйте и скомпонуйте программу, вызывая соответствующие утилиты из командной строки. Добейтесь правильной работы программы.

3. Создайте make-файл для проекта. Убедитесь в его работоспособности, используя make.

4. Создать текстовый файл, например содержащий одну из страниц man для  vi.

5. Запустить vim.

6. Открыть ранее созданный текстовый файл.

7. Освоить навигацию по тексту и редактирование.

8. Произвести копирование фрагмента текста.

9. Создать макроопределение (клавиатурную комбинацию) для дублирования текущего слова.

10. Вставьте в редактируемый текст фрагмент из другого файла.

11. С помощью фильтра вставьте в текст список файлов домашнего каталога.

12. Выйдите из редактора с сохранением файла.

13. Запустите emacs и повторите пп. 1–2.

Контрольные вопросы.

1. В чем удобство использования утилиты make по сравнению с командными файлами?

2. Как утилита make определяет необходимость перекомпиляции заданного модуля?

3. Какие режимы имеет редактор vi?

4. Для чего нужна команда фильтра?

5. Какое из различий vim и emacs Вам представляется наиболее существенным?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]