Emacs для начинающих

       

Команды Emacs


Некоторые версии Emacs предоставляют пользователю возможность через раскрывающиеся меню получить максимальный доступ к возможностям редактора. PSGML, в свою очередь, добавляет несколько новых окон к меню Emacs. Зачастую при вводе текста и перемещении по нему курсора использование меню требует большего времени, чем потребуется на нажатие соответствующей кнопки. Однако меню становятся полезными при работе с редкоиспользуемыми или труднозапоминаемыми комбинациями кнопок. Эта глава посвящена описанию использования пунктов меню, соответствующих определенным командам.

Обычно пользователь "говорит" редактору Emacs что именно нужно делать при нажатии специальных кнопок. Например, С-а (произносится "Control A" - нажатие клавиши А при нажатой клавише Ctrl) означает "переход курсора в начало текущей строки."

Многие команды Emacs выполняются при нажатии клавиши, называемой еще Meta-кнопкой. Некоторые ранние компьютеры имели специальную кнопку, которая именно так и называлась. Эта кнопка использовалась в комбинации с другими кнопками точно также, как в настоящее время используют клавишу Ctrl. На современных клавиатурах клавиша с названием "Meta" отсутствует. Вместо нее можно использовать Escape или Alt.

Комбинация с Meta-кнопкой предшествующая нажатию других клавиш обозначается через "М-". Например, M-f означает нажатие клавиши f при уже нажатой кнопке Escape. Если ваш компьютер или версия Emacs позволяет использовать кнопку Alt вместо метаклавиши, нажимайте ее в комбинации с другими клавишами точно так же, как это обычно делают с клавишами Ctrl или Shift.

Существуют команды, которые требуют нажатой клавиши Escape перед нажатием комбинации с кнопкой Ctrl. Такие комбинации обозначают M-C-x (Meta-Control-x). В документации также встречается обозначение ESC-C-x (если версия Emacs позволяет использовать Alt в качестве метаклавиши, то нужно нажать Alt+Ctrl+x). Данный документ описывает только один вариант использования метаклавиши.


Большое число команд Emacs выполняется при последовательном нажатии двух комбинаций клавиш. Например, нажатие С-x, а затем С-s (сокращенно пишется C-x C-s) приводит к записи текущего файла. Зачастую подобные комбинации группируются таким образом, чтобы по первой комбинации можно было определить к какому "семейству" относится команда. Например, все команды, начинающиеся с C-x - это команды работы с файлами: открытие, сохранение, выход без сохранения и т.п. Большинство этих команд представлены в пункте меню File.

Иногда первая комбинация клавиш вызывает на экран меню потенциально возможных вторых клавиш. Например, нажатие C-h приводит к появлению в окне минибуфера следующей строки:

C-h (Type ? for futher options)
(Как будет показано в разделе "Возможности On-line Help", нажатие клавиши ? выводит на экран описание опций.) PSGML делает удобным данную разновидность подсказки, избавляя пользователя от необходимости запоминать большое количество комбинаций.

Возможности редактора Emacs настолько велики, что трудно предусмотреть такое большое число комбинаций клавиш для их реализации. Поэтому часто возникает необходимость вызвать командную строку, где вручную можно было бы набрать ту или иную команду. Нажатие M-x (x при нажатом Escape) делает доступным командную строку в окне минибуфера. При использовании дополнительных пакетов, таких как PSGML, расширяющих возможности Emacs, командная стока становится просто незаменимой.

Например, команда goto-line не имеет определенной комбинации клавиш (как это исправить будет показано в разделе "Настройка редактора Emacs"). Однако пользователь может заставить курсор перейти в указанную строку. Для этого нужно вызвать через M-x командную строку, набрать там команду goto-line и нажать Enter. Тогда Emacs выдаст в окне минибуфера подсказку:

Goto line:
Нужно ввести номер строки и нажать Enter.

Прежде, чем приступать к исследованию возможностей многошаговых команд, нужно хорошо запомнить комбинацию клавиш, позволяющую прервать операцию - эта комбинация C-g. Например, при нажатии C-x Emacs выводит в окне минибуфера

C-x-
и ждет продолжения. Если вместо C-x предполагалось нажать C-s, то теперь нельзя просто нажать эту комбинацию, потому что C-x C-s производит совсем другое действие, чем просто C-s. Чтобы отменить действие нужно нажать C-g.

Другой пример. К тяжелым, в плане понимания, последствиям приводит двойное нажатие клавиши Escape. В некоторых версиях UNIX последствия такого нажатия настолько необычны, что приводят пользователя в замешательство. В данном случае для отмены действия также нужно нажать C-g.


Содержание раздела