При изложении материала всей книги мы предполагаем, что читатели знакомы с языком программирования С и C++ и наиболее распространенными функциями стандартной библиотеки языка С. Тексты программ в книге написаны на С, за исключением случаев, когда рассматривается конкретная особенность программирования на C++. Мы также предполагаем, что читатели умеют выполнять базовые операции в интерпретаторе команд Linux, в частности создавать каталоги и копировать файлы. В связи с тем что многие Linux-программисты начинали свой путь в среде Windows, мы иногда будем указывать на сходства и различия между двумя операционными системами.
Редактор — это программа, используемая для модификации исходных текстов. В Linux множество редакторов, но, очевидно, наиболее популярный и многофункциональный среди них — GNU Emacs.
Несколько слов о Emacs
Emacs — нечто гораздо большее, чем просто редактор. Это необычайно мощная программа, работая в которой можно, к примеру, читать и отправлять электронные сообщения. Способы настройки и расширения ее функциональных возможностей столь обширны, что заслуживают написания отдельной книги. Представьте, что, находясь в Emacs, вы можете путешествовать в Internet!
Впрочем, мы не ограничиваем свободу читателей, привыкших работать в другом редакторе. Ни один из примеров книги не зависит от использования Emacs. Представленный ниже небольшой вводный курс предназначен для тех из вас, кто еще не успел выбрать свой любимый редактор в Linux.
1.1.1. Открытие исходного файла C/C++
Чтобы запустить редактор Emacs, наберите emacs
в окне терминала и нажмите . Появится окно редактора, в верхней части которого имеется строка меню. Перейдите в меню Files, выберите команду Open Files и наберите имя требуемого файла в строке "мини-буфера" в нижней части экрана. [2] Пользователи, не работающие в X Window, должны нажать , чтобы получить доступ к меню.
При создании исходного файла на языке С используйте расширения .с
или .h
. В случае C++ придерживайтесь расширений .cpp
, .hpp
, .С
или .H
. Когда файл будет открыт, введите нужный текст и сохраните результат, выбрав команду Save Bufferв меню Files. Чтобы выйти из редактора, воспользуйтесь командой Exit Emacsв меню Files.
Те, кто испытывают раздражение от необходимости постоянно щелкать мышью, могут воспользоваться клавиатурными сокращениями, ускоряющими открытие и сохранение файлов, а также выход из редактора. Операции открытия файла соответствует сокращение C-x C-f
. (Запись C-x
означает нажатие клавиши с последующим нажатием клавиши .) Чтобы сохранить файл, введите C-x C-s
, а чтобы выйти из Emacs — C-x C-c
. Лучше узнать о возможностях редактора можно с помощью встроенного учебника, доступного через команду Emacs Tutorialв меню Help. В нем приведено множество советов, которые помогут пользователям научиться эффективнее работать с Emacs.
1.1.2. Автоматическое форматирование
Программисты, привыкшие работать в интегрированной среде разработки, оценят имеющиеся в Emacs средства автоматического форматирования кода. При открытии исходного файла, написанного на C/C++, редактор самостоятельно определяет наличие в нем программного кода, а не просто текста. Если нажать клавишу в пустой строке, редактор переместит курсор в нужную позицию, определяемую положением предыдущей строки. Когда клавиша нажимается в строке, содержащей какой-то текст, сдвигается вся строка. Предположим, к примеру, что набран такой текст:
int main() {
printf("Hello, world\n");
}
Нажатие клавиши в строке вызова функции printf()
приведет к следующему результату:
int main() {
printf("Hello, world\n");
}
По мере работы с редактором Emacs читатели изучат и другие средства форматирования. Особенность редактора заключается в том. что он позволяет программировать практически любые операции, связанные с автоматическим форматированием. Благодаря этому были реализованы режимы редактирования множества видов документов, разработаны игры [3] Введите команду M-x dunnet , если хотите поиграть в старомодную приключенческую игру.
и даже СУБД.
1.1.3. Синтаксические выделения
Помимо форматирования программного кода Emacs упрощает чтение файлов, написанных на C/C++, выделяя цветом различные синтаксические элементы. Например, ключевые слова могут быть выделены одним цветом, названия встроенных типов данных — другим, а комментарии — третьим. Подобный подход облегчает нахождение некоторых широко распространенных синтаксических ошибок.
Читать дальше