Как новый пользователь, вы вероятно захотите запустить Emacs
просто для пробы. Войдя в Emacs и захотев выйти, вы однако можете
не определить как это сделать. Так что, если вы никогда ранее не
использовали Emacs, сделайте это сейчас. В командной строке
наберите emacs
и нажмите клавишу ввода (enter). Emacs
должен запустится. Если он не запускается, то либо он не
установлен, либо не находится в каталогах, в которых происходит
поиск программ.
После того как вы увидели Emacs, вам необходимо знать как выйти
из него. Комбинацией клавиш для выхода из Emacs является C-x
C-c
. Обозначение C-x
означает, что удерживается
клавиша Ctrl
и нажимается клавиша x
. В этом
случае вам необходимо продолжать удерживать Ctrl
и нажать
c
для окончания сеанса работы.
Сочетания клавиш, используемые в Emacs покажутся вам странными,
чужими и могут даже быть неудобными для вас первое время--особенно
если вы пользователь vi
. В отличии от vi
, Emacs
не имеет разных режимов для редактирования текста и команд.
Для повторения: emacs
запустит Emacs. А C-x
C-c
произведет выход из Emacs.
После старта Emacs займет все окно X window (или экран, сели вы запускаете его на консоли вместо X Window System). Вы увидите меню вдоль верха окна, некоторый текст расположенный в центральной части окна и несколько строк внизу окна.
Это будет выглядеть примерно как этот набросок в ASCII:
+----------------------------------------------------------------------+ |Buffers Files Tools Edit Search Mule Help | | | |Welcome to GNU Emacs, one component of a Linux-based GNU system. | | | | | | | | ... | | | |---1:---F1 *scratch* (Lisp Interaction)--L1--All-------------| |For information about the GNU Project and its goals, type C-h C-p. | +----------------------------------------------------------------------+
Замечание: Emacs обычно заполняет весь экран/окно. Я
сократил предыдущий пример для того, чтобы сохранить место. Вы
также увидите приветственное сообщение при первом запуске
Emacs. Я опустил его и вместо него вставил
``...
''. Приветственное сообщение просто определяет
точную версию используемого вами Emacs, и сообщает вам о том как
использовать помощь и другие вещи.
Самой верхней строкой пользовательского интерфейса Emacs является меню. Если вы работаете в X, то вы увидите его как традиционное выпадающее меню, которое вы можете использовать с помощью мыши. Иначе вам придется использовать Клавиатурные сокращения (не описаны в этом документе) для доступа к меню.
Из последних двух строк интерфейса Emacs, самой верхней является строка статуса. Она содержит информацию о буфере в котором вы работаете, о режиме в котором находится Emacs, а также другую информацию. Сейчас просто представьте что там находится и все.
Самая нижняя строка называется мини-буфер. Он отделен от основного буфера строкой статуса, который мы только что обсуждали. Вы можете думать о нем как о ``командной строке''. Это место где вы наберете команды для Emacs и где появляются сообщения о том, что вы делаете.
Вы обнаружите, что то, что мы называем строкой статуса обычно в документации, относящейся к Emacs называется строкой режима. Это место где Emacs отображает информацию о текущем режиме (режимах), а также другие вещи, такие как дата и время, номер строки, размер файла и почти все что вы захотите там увидеть.
В этом разделе описывается общая терминология, используемая в Emacs, с которой вы столкнетесь при использовании и чтении о Emacs.
В отличии от других редакторов при открытии файла Emacs не оставляет его открытым все время, пока вы работаете с ним. Вместо этого Emacs считывает его в буфер, который находится в оперативной памяти. В течении редактирования буфера и другой работы с ним, с данными на диске ничего не происходит. Только когда вы сохраняете данные, буфер обновляет данные на диске. В этом подходе есть свои достоинства и недостатки, но для вас важно только то, что вы понимаете как это работает.
Как следствие этого, вы увидите термин ``буфер'' используемым в документации по Emacs, режимах, пакетах и прочих вещах. Просто осознавайте, что буфер означает ``копию файла, которая сейчас находится в памяти''. Необходимо также отметить, что не всегда буфер ссылается на файл на диске. Очень часто Emacs создает буфера как результат выполнения ваших команд. Такие буфера могут содержать результат выполнения команды, список выбора, и тому подобные вещи.
В сленге Emacs, вы часто услышите или увидите ссылки на термин точка (point). Честно говоря точка это позиция курсора. Настоящее различие между курсором и точкой скорее всего не актуально при начале работы с Emacs. Но если вы любопытны, думайте о нем этим способом. Курсор -- это наглядное представление точки. Курсор всегда находится в определенной позиции символа текущего буфера. С другой стороны, точка живет между символами в этом буфере. Так что вы можете сказать, что если курсор находится на букве `h' в слове ``the'', то точка находится между `t' и `h'.
Подобно многим современным редакторам, Emacs позволяет выполнять операции (отступа, проверки слов, переформатирования, вырезания, копирования, вставки,....) над куском текущего буфера. Вы можете подсветить (или ``пометить'') блок текста, используя клавиатуру или мышь и затем выполнить операцию только над выделенным блоком текста. В Emacs такой блок текста называется область (region).
Ok, это немного смутит тех, кто уже использовал графический интерфейс. Просто помните, что Emacs разрабатывался задолго до появления графического интерфейса пользователя и менеджеры окон были популярны.
Окно в Emacs -- это область экрана, в которой отображается буфер. Когда Emacs запускается, у вас на экране отображается одно окно. Некоторые функции Emacs (такие как оперативная справка и документация) часто [временно] открывают дополнительные окна на экране Emacs.
Окна Emacs не имеют ничего общего с окнами X в плане графического интерфейса. Вы можете открыть дополнительные окна X для отображения буферов Emacs, например для сравнения двух файлов. На эти новые окна X ссылаются как на фрэймы (frames) в жаргоне Emacs. Читайте дальше.
В Emacs фрэйм это отдельное окно X window в котором отображается буфер Emacs. Но оба окна являются частью одного сеанса Emacs. Поведение буфера в чем-то (но не во всем) похоже на то, что происходит когда вы нажимаете Alt+N в Netscape Navigator.
Этот раздел описывает основы использования клавиатуры Emacs. Почти как и любой мощный редактор, все что вы можете сделать в Emacs используя лишь несколько клавиатурных сокращений.
Если вы являетесь пользователем vi
, то понятие
использования клавиш k, j, l, h
для перемещения вверх и
вниз на строку и вперед/назад на символ вероятно займет некоторое
время для освоения. В действительности освоение этого может занять
несколько часов или даже недель для того, чтобы освоить навигацию
по файлу, используя различные комбинации клавиш доступных в
vi
.
Emacs не отличается от него. Существуют разные сочетания клавиш
и команды, которые надо изучить. Подобно vi
, вам надо
знать хотя бы основы для того чтобы сделать разную работу. Затем
постепенно вы вы расширите ваше знание и найдете более быстрые
способы выполнения разных вещей.
Как вы вскоре узнаете Emacs широко использует много-клавишные
комбинации. Потому-что это не редактор, ориентированный на
режимы, подобно vi
, вы не должны думать о том,
находитесь ли в ``командном режиме'' или в ``режиме правки'' до
того как вы попробуете переместить курсор или выполнить
команды. Вместо этого наберите правильную комбинацию ключей
(клавиш) и Emacs сделает (обычно) то. что вы требуете.
Клавиши, которые использует Emacs в документации часто
сокращаются как C
(для клавиши Control или Ctrl) и
M
для (Meta). В то время как клавиатуры для современных
персональных компьютеров имеют одну или несколько клавиш
Ctrl
, лишь некоторые из них имеют клавиши
Meta
. Вам необходимо мысленно подставлять либо
Esc
либо Alt
для клавиши Meta. В большинстве
стандартных конфигураций и Esc и Alt выполняют одну и ту же
работу.
Так что когда вы увидите ссылку в любой относящейся к Emacs на
сочетание C-x f
, то оно означает ``нажмите control-x а
затем f.'' И если вы увидите ссылку на что-то подобное M-x
shell
, то это означает ``нажмите alt-x и наберите слово
shell''.
Очень полезной командой для начинающих пользователей является
команда M-x apropos
или C-h a
. apropos
произведет поиск в справочной документации по всем функциям Emacs
и постарается найти разделы соответствующие введенному
регулярному выражению. Это хороший способ для того, чтобы найти
все команды относящиеся например к фреймам. Просто наберите
C-h a
и затем слово frame
.
Теперь, когда вы знаете какие сокращения что обозначают, вот вам список наиболее общих клавиатурных сокращений для перемещения внутри буфера:
Сочетание Действие клавиш ----------------------------------- C-p Вверх на одну строку C-n Вниз на строку C-f Вперед на один символ C-b Назад на один символ C-a Начало строки C-e Конец строки C-v Вниз на одну страницу M-v Вверх на одну страницу M-f Вперед на одно слово M-b Назад на одно слово M-< В начало буфера M-> В конец буфера C-g Окончить текущую операцию -----------------------------------
И как вы могли и ожидать, клавиши перемещения курсора работают
как надо. Клавиша Backspace
может не работать, но это
уже отдельная история.
Ок, теперь в ы узнали как перемещаться по буферу, а что насчет команд открытия и сохранения файлов? Вот несколько основных команд.
До того как сразу приступить к этим командам я должен вкратце рассказать как они работают.
Все ``командные сокращения (keystrokes)'' в Emacs (те, которые
M-x что-нибудь
или C-что-нибудь
) в
действительности являются указателями на функции, которые
являются частью Emacs. Вы можете вызвать любую из этих функций
набрав M-x имя-функции
и нажав Enter
. Вы также
можете использовать клавиатурное сокращение для этой функции
(если оно имеется).
Например функция Emacs, которая сохраняет буфер на диск
называется save-buffer
. По умолчанию она также присвоена
комбинации клавиш C-x C-s
. Так что вы можете
использовать либо эту комбинацию клавиш, либо вы можете набрать
M-x save-buffer
и достигнете тех же самых результатов.
Все наиболее часто используемые функции имеют клавиатурные сокращения. Некоторые из них перечислены ниже.
Сочетание Функция Описание клавиш ------------------------------------------------------------------- C-x C-s save-buffer Сохранить буфер на диске C-x u undo Отменить последнюю операцию C-c C-f find-file открыть файл на диске C-s isearch-forward Поиск строки вперед C-r isearch-backward Поиск строки назад replace-string Поиск и замена строки replace-regexp Поиск и замена с использованием регулярного выражения C-h t help-with-tutorial Использовать интерактивный учебник C-h f describe-function Показать справку по функции C-h v describe-variable Показать справку по переменной C-h x describe-key Показать данные, о том, что делает последовательность клавиш C-h a apropos Поиск в справке по строке/регулярному выражению C-h F view-emacs-FAQ Показать Emacs FAQ C-h i info Документация по Emacs (Info) C-x r m bookmark-set Установить закладку. Полезно при поисках C-x r b bookmark-jump Перейти к закладке -------------------------------------------------------------------
После того, как вы попробуете многие из этих функций, вы
узнаете, что они требуют ввода ваших данных. Ввод всегда
происходит через мини-буфер. Это похоже на использование команд
:
в vi
или большинство команд, которые вы
используете в вашей любимой оболочке Unix.
В Emacs доступны сотни встроенных функций. Вышеприведенный список это только маленький пример, который показывает те функции, которые я часто использую. Смотрите оперативную помощь для более полного списка всех доступных функций и более полной документации на то, что я описал выше.
Также как и многие популярные оболочки Unix (bash, csh, tcsh,
...) Emacs предлагает дополнение команд по клавише
Tab
. В действительности дополнение команд в bash было
сделано уже после Emacs.
В качестве примера, попробуйте набрать M-x search
и
затем нажмите Tab
. Emacs добавит знак минус в качестве
указания того, что существует несколько возможных дополнений, но
все они имеют знак минус как следующий знак. Нажмите Tab
еще раз и Emacs покажет вам список возможных дополнений, из
которых вы можете выбрать. Заметьте, что он делает это в
новом окне. Он временно разбивает экран на два окна:
одно из них содержит ваш буфер, а в другом находится список
возможных дополнений для ``search-''. Вы можете нажать комбинацию
C-g
для прекращения процесса выбора и закрытия нового
окна.
Emacs поставляется с интерактивным учебником, который проведет вас через объяснение основных свойств редактирования и функций, которые должны знать все. Он также объясняет как использовать другие справочные свойства в Emacs.
Я сильно рекомендую вам провести некоторое время за учебником,
если вы планируете достичь серьезных результатов в обучении
Emacs. Как показано в таблице выше, вы можете запустить учебник
через C-h t
. Учебник само-документирован и предназначен для
людей, которые только что начали работу с Emacs.
Если вы запускаете Emacs в X, то вы увидите что, самый правый пункт в строке меню озаглавлен Help (Помощь). При исследовании меню Help заметьте, что некоторые пункты имею клавиатурные сокращения, и они перечислены справа в меню.
В заключение, для просмотра всего объема документации, доступной
в Emacs, вы должны использовать команды M-x info
или
C-h i
, которые запустят Info, просмотрщик документации
Emacs.