Використання Emacs як середовище розробки
На жаль, Unix-системи поставляються без будь-якого включаючого-все-що-ви-захочете-і-набагато більше одного-гігантського-пакета інтегрованого середовища розробки, які є в інших системах. [1] Однак є можливість налаштувати своє середовище. Вона може бути не такою вже красивою і не дуже інтегрованою, але ви можете налаштувати її так, як вам цього хочеться. І вона безкоштовна. І доступні її вихідний код.
І все це називається Emacs. Дехто живить до нього огиду, але багато хто її любить. Якщо ви з перших, то боюсь, що цей розділ вас мало зацікавить. Також вам знадобиться деяка кількість пам'яті для його роботи - я рекомендую 8 МБ для текстового режиму і 16 МБ для X як мінімальні вимоги для отримання задовільної продуктивності.
Тут навіть коротко просто неможливо описати все, що може робити Emacs, але тільки деякі з можливостей, що представляють інтерес для розробників:
Випадаючі меню та вбудована система допомоги.
Синтаксичне виділення та формування відступів залежно від мови.
У Emacs ви можете компілювати та налагоджувати програми.
При виникненні помилки компіляції можна перейти до відповідного рядка вихідного коду.
Дружній інтерфейс із програмою info, яка використовується для читання гіпертекстової документації GNU, включаючи документацію на сам Emacs.
Дружній інтерфейс із програмою gdb, що дозволяє переміщатися за вихідним кодом відповідно до кроків виконання програми.
І, безперечно, багато з того, що я не згадав.
Emacs може бути встановлений у FreeBSD як порт Emacs.
Після того, як він буде встановлений, запустіть його танатиснітьC-h tдля вивчення підручника по Emacs-це означає утримування клавіші control і одночасним натисканням на клавішу h, з подальшим відпусканням клавіші control і натисканням кнопки t. (Або ви можете використовувати мишу для вибору Emacs Tutorial з меню Help ).
Хоча в Emacs є меню, варто вивчити клавіатурні команди, що використовуються, так як при редагуванні чогось набагато швидше натиснути кілька клавіш, ніж шукати мишу і потім клацати в потрібному місці. І, якщо ми поговорите з досвідченими користувачами Emacs, ви виявите, що вони часто іноді видають фрази типу " M-x replace-s RET foo RET bar RET" , тому корисно знати, що вони означають. І, в будь-якому випадку, в Emacs є дуже багато корисних функцій, щоб вмістити їх у системі меню.
На щастя, досить легко знайти клавіатурні скорочення, оскільки вони виводяться поряд із пунктом меню. Я раджу користуватися пунктом меню, скажімо, для відкриття файлу, доки ви не зрозумієте, як це працює і відчуєте себе впевнено, і тільки потім спробуєте виконати C-x C-f. Коли ви будете задоволені, переходьте до вивчення наступної команди меню.
Якщо ви не можете гадати, що робить конкретна комбінація клавіш, виберіть пункт Describe Key з меню Help і наберіть її - Emacs скаже, що вона робить. Ви також можете скористатися пунктом меню Command Apropos для пошуку всіх команд, які містять деяке слово, разом з клавіатурною комбінацією.
До речі, вираз вище означає утримання клавіші Meta , натискання x , відпускання клавіші Meta , набірreplace-s(скорочення для replace-string-ще однією особливістю Emacs є можливість скорочувати команди). натискання клавіші return , набірfoo(рядки, яку ви хочете замінити), натисканняклавіші return , набір bar (рядки, яка замінить foo) та натискання return знову. Emacs виконає операцію з пошуку та заміни, яку ви щойно запросили.
Якщо ви цікавитеся, в якій точці земної кулі знаходиться клавіша Meta, то це особлива клавіша, яка є на багатьох робочих станціях Unix. На жаль, на PC їх немає, тому зазвичай це клавіша alt (або, якщо вам зовсім не пощастило, клавіша escape ).
2.7.2. Налаштування Emacs
Emacs має великі можливості; деякі з них є вбудованими, деякі потрібно налаштувати.
Найкраще вивчати Emacs Lisp, завантаживши Підручник з Emacs
Однак для виконання налаштування Emacs немає потреби знати будь-який Lisp, тому що я включив сюди приклад файлу .emacs, якого для початку має вистачити. Просто скопіюйте його до свого домашнього каталогу і перезапустіть Emacs, якщо він вже запущений; він вважає команди з файлу і (сподіваюся) дасть вам прийнятні початкові налаштування.
2.7.3. Приклад файлу .emacs
На жаль, тут дуже багато всього, щоб пояснити докладно; проте на парі місць варто зупинитись докладніше.
Клавіша tab у деяких режимах працює як функція формування відступу, тому при натисканні клавіші табуляції у поточному рядку коду буде сформовано відступ. Якщо ви хочете розмістити будь-який символ tab, то при натисканні клавіші tab утримуйте клавішу control.
Це file supports syntax highlighting for C, C++, Perl, Lisp and Scheme, виходячи з мови з файлу name.
Emacs вже має зумовлену функцію з ім'ям next-error. У вікні виведення результату компіляції вона дозволяє вам пересуватися від однієї помилки компіляції до іншої натисканням M-n; ми визначили додаткову функцію previous-error, яка дозволяєпереходити до наступної помилки після натискання M-p. Найприємнішою можливістю є те, що після натискання C-c C-c файл з вихідним текстом, в якому відбулася помилка, буде відкрито на відповідному рядку.
Ми включили можливість Emacs працювати як сервер, тому якщо ви робите щось поза Emacs і хочете відредагувати файл, то можете просто набрати
та після цього зможете редагувати файл у вашому Emacs! [2]
Example 2-1. Зразковий файл .emacs
2.7.4. Розширення кількості мов, з якими може працювати Emacs
Отже, добре, якщо ви збираєтеся програмувати тільки мовами, вже описаними у файлі .emacs (C, C++, Perl, Lisp і Scheme), але що трапиться, якщо вийшла нова мова під назвою "whizbang" , в якій є безліч привабливих можливостей ?
Насамперед потрібно перевірити, чи не поставляється з мовою whizbang із файлами для Emacs, які служать для опису мови. Зазвичай вони мають закінчення .el, що означає "Emacs Lisp". Наприклад, якщо whizbang є портом FreeBSDm, ми можемо пошукати такі файли командою.
і встановити їх, скопіювавши їх у каталог Lisp для Emacs вашої системи. У FreeBSD 2.1.0-RELEASE це каталог /usr/local/share/emacs/site-lisp.
Так, наприклад, якщо результат виконання команди пошуку виглядає як
Потім нам потрібно вирішити, яке розширення мають файли з вихідними текстами мовою whizbang. Нехай, наприклад, всі вони закінчуються на .wiz. Нам потрібно додати запис до нашого файлу .emacs, щоб Emacs зміг використовувати інформацію з whizbang.el.
Знайдіть рядок auto-mode-alist у файлі .emacs і додайте рядок для whizbang, такий як:
Це означає, що Emacs автоматично переходитиме в режим whizbang-mode, коли ви редагуєте файл, що закінчується на.wiz.
Трохи нижче ви знайдете запис для font-lock-auto-mode-list. Додайте до неї whizbang-mode такого вигляду:
Це означає, що Emacs завжди буде використовувати режим font-lock-mode (тобто виділення синтаксичних конструкцій) для редагування файлів .wiz.
І це все, що потрібне. Якщо є щось, що ви хочете робити автоматично при відкритті файлів.
Принаймні поки ви не готові платити великі суми грошей.
Багато користувачів Emacs вказують emacsclient як значення своєї змінної оточення EDITOR, тому це відбувається щоразу, коли їм потрібно відредагувати файл.