Merge from emacs-24
[bpt/emacs.git] / etc / tutorials / TUTORIAL.ru
CommitLineData
5eb7536f
AO
1Учебник Emacs. Условия распространения приведены в конце файла.
2
3Для управления Emacs обычно используются сочетания клавиш (key -- сочетание
4клавиш клавиатуры и/или кнопок мыши), включающие в себя клавишу CONTROL
5(иногда отмечаемая как CTRL или CTL) или клавишу META (иногда помеченную как
6ALT или EDIT). Вместо того, чтобы каждый раз писать META или CONTROL, мы
7будем использовать следующие сокращения:
8
9 C-<chr> -- следует удерживать клавишу CONTROL, пока набирается символ
10 <chr>. Так, C-f должно означать: одновременно нажать клавиши CONTROL и f.
11 M-<chr> -- следует удерживать клавишу META, пока набирается символ
12 <chr>. Если нет клавиши META, ALT или EDIT, то нажмите <ESC>,
13 отпустите ее, а потом наберите символ <chr>.
14
15Важное замечание: для завершения работы Emacs, наберите C-x C-c (два сочетания
16клавиш). Чтобы прервать частично набранную команду, нажмите C-g.
17Символы ">>" с левой стороны указывают, что вам нужно делать, чтобы
18попробовать применить команду. Например:
f34cec5c 19<<Blank lines inserted here by startup of help-with-tutorial>>
5eb7536f
AO
20[Середина страницы оставлена пустой в учебных целях. Текст продолжается ниже]
21>> Теперь нажмите C-v (просмотр следующего экрана) для перемещения к следующему
22 экрану. (Выполните эту команду удерживая клавишу CONTROL и нажимая v.) Теперь
23 вы должны это сделать еще раз, когда вы закончите читать текст на экране.
70ca7cb3 24
5eb7536f
AO
25Обратите внимание на то, что при переходе с экрана на экран показываются две
26строки с предыдущего экрана -- это обеспечивает некоторую непрерывность
27восприятия, так что вы можете продолжать читать текст не теряя нити
28повествования.
70ca7cb3 29
5eb7536f
AO
30Первое, что вам необходимо знать -- это то, как передвигаться по тексту из
31одного места в другое. Вы уже знаете, как переместиться вперед на один экран
32используя сочетание клавиш C-v. Для перемещения назад на один экран, нажмите
33M-v (удерживайте клавишу META и наберите v, или нажмите <ESC> и затем v,
34если у вас нет клавиши META, EDIT или ALT).
70ca7cb3 35
5eb7536f 36>> попробуйте набрать M-v, а затем C-v, несколько раз.
70ca7cb3 37
5eb7536f
AO
38
39* КРАТКИЙ ПЕРЕЧЕНЬ КОМАНД
70ca7cb3 40-------------------------
a00a4ccb 41
5eb7536f 42Следующие сочетания клавиш полезны при по-экранном просмотре текста:
a00a4ccb 43
5eb7536f
AO
44 C-v Перейти на один экран вперед
45 M-v Перейти на один экран назад
46 C-l Очистить экран и отобразить все заново,
47 разместив текст, находящийся возле курсора,
48 в центре экрана. (это CONTROL-L, а не CONTROL-1.)
a00a4ccb 49
5eb7536f
AO
50>> Найдите курсор и запомните текст возле него. Потом нажмите C-l.
51 Найдите курсор снова и убедитесь, что возле него все тот же текст.
a00a4ccb 52
5eb7536f
AO
53Вы также можете использовать клавиши PageUp и PageDn для перемещения между
54экранами (если они есть на вашем терминале), но вы сможете работать более
55эффективно, если будете использовать сочетания C-v и M-v.
70ca7cb3 56
a00a4ccb 57
5eb7536f 58* БАЗОВЫЕ КОМАНДЫ УПРАВЛЕНИЯ КУРСОРОМ
17287102 59-------------------------------------
a00a4ccb 60
5eb7536f
AO
61Движение от экрана к экрану удобно, но как переместиться в определенную
62точку в тексте на экране?
a00a4ccb 63
5eb7536f
AO
64Есть несколько способов сделать это. Вы можете использовать клавиши
65управления курсором (стрелки), но более эффективным будет сохранение рук в
66их стандартной позиции и использовать команды C-p, C-b, C-f и C-n. Эти
67команды эквивалентны четырем клавишам перемещения курсора, как это показано
68на схеме:
177c0ea7 69
5eb7536f 70 Предыдущая строка, C-p
a00a4ccb
RS
71 :
72 :
5eb7536f 73 Назад, C-b .... Текущая позиция курсора .... Вперед, C-f
a00a4ccb
RS
74 :
75 :
5eb7536f 76 Следующая строка, C-n
a00a4ccb 77
5eb7536f
AO
78>> Переместите курсор на строку с центром диаграммы, используя сочетания
79 клавиш C-n или C-p. Затем нажмите C-l и посмотрите как диаграмма
80 переместится в центр экрана.
a00a4ccb 81
5eb7536f
AO
82Вам будет несложно запомнить эти команды по первым буквам соответствующих
83слов: P -- предыдущий (previous), N -- следующий (next), B -- назад
84(backward) и F -- вперед (forward). Вы постоянно будете использовать эти
85основные команды позиционирования курсора.
a00a4ccb 86
5eb7536f 87>> Нажмите несколько раз C-n, чтобы опустить курсор вниз к этой строке.
a00a4ccb 88
5eb7536f
AO
89>> Переместитесь по строке, используя C-f, и потом поднимитесь вверх с
90 помощью C-p. Посмотрите, как изменилось положение курсора при нажатии
91 С-р, если он находился в середине строки.
a00a4ccb 92
5eb7536f
AO
93Каждая строка текста завершается символом перевода строки (Newline
94character), который отделяет ее от следующей строки. (Обычно, последняя
95строка файла завершается символом перевода строки, но Emacs не требует
96этого).
a00a4ccb 97
5eb7536f
AO
98>> Попробуйте использовать C-b в начале строки. Курсор должен переместиться
99 на конец предыдущей строки. Это происходит потому, что он движется назад
100 через символ перевода строки.
a00a4ccb 101
5eb7536f 102C-f может перемещать курсор через символ перевода строки так же, как и C-b.
a00a4ccb 103
5eb7536f
AO
104>> Попробуйте несколько раз применить C-b так, чтобы вы увидели, как
105 движется курсор. Далее используйте сочетание клавиш C-f чтобы вернуться
106 на конец строки. Нажмите C-f еще раз, чтобы перейти к началу следующей
107 строки.
a00a4ccb 108
5eb7536f
AO
109Когда вы перемещаетесь за верхний или нижний край экрана, текст, находящийся
110за экраном, сдвигается внутрь экрана. Это называется "прокрутка"
111(scrolling). Прокрутка позволяет Emacs перемещать курсор в нужное место
112текста без перемещения его за пределы экрана.
a00a4ccb 113
5eb7536f
AO
114>> Попробуйте переместить курсор за нижнюю границу экрана, используя C-n, и
115 посмотрите, что произойдет.
a00a4ccb 116
5eb7536f
AO
117Если посимвольное перемещение слишком медленно, вы можете двигаться по
118словам. M-f (META-f) перемещает вперед на слово, а M-b назад на слово.
a00a4ccb 119
5eb7536f 120>> Нажмите несколько раз M-f и M-b.
a00a4ccb 121
5eb7536f
AO
122Если курсор находится в середине слова, M-f переместит его в конец слова.
123Если курсор находится между словами, M-f переместит его в конец следующего
124слова. M-b работает точно так же, но в противоположном направлении.
a00a4ccb 125
5eb7536f
AO
126>> Нажмите M-f и M-b несколько раз, перемежая их с C-f и C-b, -- так вы
127 сможете увидеть как действуют M-f и M-b из разных позиций в словах и
128 между ними.
a00a4ccb 129
5eb7536f
AO
130Отметьте параллель между C-f и C-b с одной стороны, и M-f и M-b с другой.
131Очень часто Meta-сочетания используются для соответствующих операций над
132единицами, определенными в языке (слова, предложения, абзацы), тогда как
133Control-сочетания работают с базовыми единицами, независимо от того, что вы
134редактируете (символы, строки, и т.д.).
a00a4ccb 135
5eb7536f
AO
136Эта параллель также применима к строкам и предложениям: C-a и C-e перемещает
137курсор в начало и конец строки, а M-a и M-e перемещает курсор в начало и
138конец предложения.
a00a4ccb 139
5eb7536f
AO
140>> Попробуйте пару раз нажать C-a, а потом пару раз C-e. Попробуйте пару раз
141 нажать M-a, после этого пару раз нажать M-e.
a00a4ccb 142
5eb7536f
AO
143Посмотрите, что повтор C-a ничего не изменяет, а повтор M-a продолжает
144движение курсора к следующему предложению. Это не совсем аналогично, но
145выглядит естественно.
a00a4ccb 146
5eb7536f
AO
147Положение курсора в тексте также называют "точкой вставки" (point). Скажем
148иначе: курсор показывает место на экране в котором будет расположен вводимый
149текст.
a00a4ccb 150
5eb7536f
AO
151Вот список всех основных команд перемещения курсора, включая движение по
152словам и предложениям:
a00a4ccb 153
5eb7536f
AO
154 C-f На символ вперед
155 C-b На символ назад
a00a4ccb 156
5eb7536f
AO
157 M-f На слово вперед
158 M-b На слово назад
a00a4ccb 159
5eb7536f
AO
160 C-n На следующую строку
161 C-p На предыдущую строку
a00a4ccb 162
5eb7536f
AO
163 C-a В начало строки
164 C-e В конец строки
a00a4ccb 165
5eb7536f
AO
166 M-a Назад, в начало предложения
167 M-e Вперед, в конец предложения
a00a4ccb 168
5eb7536f
AO
169>> Попробуйте сейчас несколько раз использовать все эти команды.
170 Это наиболее часто используемые команды.
a00a4ccb 171
5eb7536f
AO
172Две другие важные команды перемещения курсора: M-< (META Less-then
173{Меньше-Чем}), которая перемещает курсор в начало текста, и M-> (META
174Greater-than {Больше-Чем}), которая перемещает курсор в конец текста.
a00a4ccb 175
5eb7536f
AO
176На большинстве терминалов знак "<" находится над знаком точки, и чтобы
177набрать его, вы должны использовать клавишу Shift. На этих терминалах вы так
178же должны использовать Shift, чтобы набрать M-< (без удержания клавиши Shift
179вы наберете M-точка).
a00a4ccb 180
5eb7536f
AO
181>> Сейчас попробуйте M-<, чтобы переместиться в начало учебника.
182 Потом используйте C-v, пока не вернетесь назад.
a00a4ccb 183
5eb7536f
AO
184>> Сейчас попробуйте M->, чтобы переместиться к концу учебника.
185 Используйте M-v, пока не вернетесь назад.
a00a4ccb 186
5eb7536f
AO
187Курсор можно перемещать клавишами управления курсора (стрелками), если ваш
188терминал оборудован ими. Мы рекомендуем выучить C-b, C-f, C-n и C-p по трем
189причинам. Во-первых, они работают на любых терминалах. Во-вторых, однажды
190получив практику использования Emacs, вы поймете, что использовать
191Control-сочетания удобнее и быстрее, чем клавиши со стрелочками (потому что
192вы не убираете руки с обычного их положения при печати). В-третьих, как
193только вы привыкнете использовать Control-сочетания, вы сможете так же легко
194выучить и использовать другие, более сложные команды перемещения курсора.
a00a4ccb 195
5eb7536f
AO
196Большинство команд Emacs допускают задание цифрового аргумента; для
197большинства команд, это служит счетчиком повторений. Чтобы задать счетчик
198повторений для команды, нажмите C-u, потом число повторений, и затем укажите
199команду. Если у вас есть клавиша META (или EDIT или ALT), то цифровой
200аргумент можно задать другим способом: наберите цифры, удерживая клавишу
201META. Мы рекомендуем привыкнуть к использованию C-u, поскольку это сочетание
202клавиш работает на любом терминале. Числовой аргумент также называется
203"префиксным аргументом", поскольку вы задаете аргумент до выполнения
204команды.
177c0ea7 205
5eb7536f 206Например, C-u 8 C-f переместит курсор на восемь символов вперед.
a00a4ccb 207
5eb7536f
AO
208>> Попробуйте использовать C-n или C-p с цифровым аргументом, чтобы
209 переместить курсор на эту строку с помощью одной команды.
a00a4ccb 210
5eb7536f
AO
211Многие команды используют числовой аргумент как счетчик повторений, но
212некоторые команды используют его другим способом. Некоторые команды (но мы
213еще не изучили ни одну из них) используют его как флаг -- наличие
214префиксного аргумента вне зависимости от его значения, изменяет поведение
215команды.
a00a4ccb 216
5eb7536f
AO
217Другим видом исключений являются сочетания клавиш C-v и M-v. При получении
218числового аргумента, они прокручивают экран вверх или вниз на указанное
219число строк, вместо указанного числа экранов. Например, C-u 8 C-v прокрутит
220экран на 8 строк.
a00a4ccb 221
5eb7536f 222>> Сейчас попробуйте набрать комбинацию C-u 8 C-v.
a00a4ccb 223
5eb7536f
AO
224Эта команда должна прокрутить экран на 8 строк вверх. Если вы хотите
225прокрутить его вниз, можете задать аргумент для M-v.
a00a4ccb 226
5eb7536f
AO
227Если вы используете оконную систему, такую как X11 или MS-Windows, то должна
228быть видна прямоугольная область, именуемая полосой прокрутки, расположенная
229с одной из сторон окна Emacs. Вы можете прокручивать текст, щелкая кнопкой
230мыши на полосе прокрутки.
a00a4ccb 231
5eb7536f 232Если ваша мышь имеет колесо прокрутки, вы можете использовать его.
a00a4ccb 233
5eb7536f 234* ЕСЛИ EMACS ЗАВИС
a00a4ccb
RS
235------------------
236
5eb7536f
AO
237Если Emacs перестал реагировать на ваши команды, то вы можете вывести его из
238этого состояния нажав C-g. Вы можете использовать C-g, чтобы остановить
239выполнение команд, которые слишком долго выполняются.
a00a4ccb 240
5eb7536f
AO
241Вы также можете использовать C-g для отмены набранного цифрового аргумента
242или команды, которая начала выполняться, но которую вы не хотите завершить.
a00a4ccb 243
5eb7536f
AO
244>> Наберите C-u 100 для задания аргумента 100, потом нажмите C-g. Теперь
245 нажмите C-f. Курсор должен переместиться всего на один символ, потому что
246 вы отменили аргумент нажатием C-g.
a00a4ccb 247
5eb7536f
AO
248Если вы нажали <ESC> по ошибке, то вы так же можете использовать C-g чтобы
249избежать воздействия данной команды.
a00a4ccb
RS
250
251
5eb7536f 252* ЗАПРЕЩЕННЫЕ КОМАНДЫ (DISABLED COMMANDS)
a00a4ccb
RS
253-----------------------------------------
254
5eb7536f
AO
255Некоторые команды Emacs "запрещены", так что начинающие пользователи не
256смогут случайно использовать их.
a00a4ccb 257
5eb7536f
AO
258Если вы набрали одну из запрещенных команд, то Emacs покажет сообщение,
259говорящее о том, какая команда вызывается, и запросит у вас, хотите ли вы
260продолжать работу и выполнить данную команду.
a00a4ccb 261
5eb7536f
AO
262Если вы действительно попробовать выполнить эту команду, то нажмите клавишу
263<SPC> (пробел) в ответ на заданный вопрос. Обычно, если вы не хотите
264выполнять запрещенную команду, то ответьте на вопрос нажатием клавиши "n".
a00a4ccb 265
5eb7536f
AO
266>> Нажмите `C-x C-l' ("запрещенная" команда), а потом ответьте "n" на
267 заданный вопрос.
a00a4ccb
RS
268
269
5eb7536f 270* ОКНА (WINDOWS)
a00a4ccb
RS
271------
272
5eb7536f
AO
273Emacs может отображать информацию в нескольких "окнах", каждое из которых
274отображает свой текст. Позже мы объясним как работать с несколькими окнами.
275А сейчас мы хотим объяснить вам как избавляться от лишних окон и вернуться к
276редактированию в одном окне. Это очень просто сделать:
a00a4ccb 277
5eb7536f 278 C-x 1 Одно окно. (закрыть все другие окна).
a00a4ccb 279
5eb7536f
AO
280Это CONTROL-x со следующей цифрой 1. C-x 1 развернет окно, которое содержит
281курсор, так, чтобы оно заняло весь экран. При этом будут удалены все
282остальные окна.
a00a4ccb 283
5eb7536f 284>> Переместите курсор на эту строку и нажмите C-u 0 C-l.
a00a4ccb 285
5eb7536f
AO
286>> Наберите C-h k C-f.
287 Посмотрите, как текущее окно сожмется, когда появится новое окно и
288 отобразит документацию для сочетания клавиш C-f.
a00a4ccb 289
5eb7536f 290>> Наберите C-x 1 и посмотрите, как окно с документацией исчезнет.
a00a4ccb 291
5eb7536f
AO
292Эта команда отличается от других изученных команд, что она состоит из двух
293сочетаний клавиш. Она начинается с сочетания CONTROL-x. Есть целый набор
294команд, которые начинаются с CONTROL-x -- многие из них работают с окнами,
295буферами, файлами и т.п. вещами. Эти команды состоят из двух, трех или
296четырех сочетаний клавиш.
a00a4ccb
RS
297
298
5eb7536f 299* ВСТАВКА И УДАЛЕНИЕ
a00a4ccb
RS
300--------------------
301
5eb7536f
AO
302Если вы хотите вставить текст, то просто набирайте его. Обычные символы,
303такие как A, 7, *, и пр. вставляются сразу как вы нажимаете на них. Чтобы
304вставить символ новой строки нажмите <Return> (клавиша перевода каретки,
305часто помечена как "Enter").
306
307Чтобы удалить символ перед курсором, нажмите клавишу <DEL>. Обычно это
308клавиша помеченная как "Backspace" -- та самая клавиша, которую вы обычно
309используете вне Emacs для удаления последнего набранного символа.
310
311На клавиатуре может присутствовать и другая клавиша, помеченная как
312"Delete", но она имеет другую функцию, отличную от <DEL>.
313
314>> Попробуйте сделать это -- наберите несколько символов, а затем удалите их
315 нажимая <DEL>. Не волнуйтесь что этот файл изменяется -- вы не изменяете
316 учебник. Это ваша личная копия учебника.
317
318Когда строка текста становится слишком большой для строки экрана, то она
319"продолжается" на следующей строке. Если вы используете графический
320дисплей, то небольшие изогнутые стрелки появятся на обоих сторонах экрана
321("fringes") чтобы показать, что строка продолжается с предыдущей
322строки. Если вы используете текстовый терминал, то "продолжаемая" строка
323обозначается символом "обратный слэш" ("\") в правой части экрана.
324
325>> Вводите текст, пока он не достигнет правой границы, и продолжайте вставку
326 символов. Вы увидите что появится "продолжаемая" строка.
327
328>> Используйте <DEL> для удаления текста до тех пор, пока строка снова не
329 поместится в экран. Символ продолжения строки исчезнет с экрана.
330
331Символ новой строки можно удалять точно так же, как и любой другой символ.
332Удаление символа новой строки между двумя строками приведет к их склейке в
333одну. Если полученная строка будет слишком длинной, чтобы вместиться в
334экран, то она будет отображена как строка "с продолжением".
335
336>> Переместите курсор в начало строки и нажмите <DEL>. Это соединит
337 текущую строку с предыдущей.
338
339>> Нажмите <Return> для вставки символа новой строки, вместо удаленного
340 вами.
341
342Помните, что многие команды Emacs могут получать счетчик повторения --
343обычные символы не являются исключением. Вы можете вставлять по несколько
344символов, используя счетчики повторений.
345
346>> Попробуйте -- наберите C-u 8 * для вставки ********.
347
348Вы уже научились основам набора текста в Emacs и исправления ошибок. Вы
349также можете удалять слова и строки. Вот основные операции удаления:
350
351 <DEL> удалить символ перед курсором
352 C-d удалить символ следующий за (над) курсором
353
354 M-<DEL> "убить" слово, стоящее перед курсором
355 M-d "убить" слово, стоящее за курсором
356
357 C-k "убить" все от курсора до конца строки
358 M-k "убить" все до конца предложения
359
360Заметьте, что <DEL> и C-d, вместе с M-<DEL> и M-d продолжает параллель,
361начатую C-f и M-f (да, <DEL> -- это не настоящий управляющий символ, но не
362нужно об этом волноваться). C-k и M-k, также как и C-e и M-e, продолжают
363параллель между строками и предложениями.
364
365Вы можете "убить" любую часть текста следующим методом. Переместитесь к
366одному из концов выбранной области и нажмите C-<SPC> (<SPC> -- клавиша
367пробела). Переместите курсор к другому концу текста, который вы собираетесь
368"убить". По мере того, как вы будете это делать, Emacs будет подсвечивать
369текст между курсором и точкой, где вы нажали C-<SPC>. Затем нажмите C-w. Эта
370операция убьет весь текст между двумя указанными позициями.
371
372>> Переместите курсор к букве В в начале предыдущего параграфа.
373>> Наберите C-<SPC>. Emacs должен отобразить в нижней части экрана сообщение
374 "Mark set" (метка установлена).
375>> Переместите курсор к букве о в слове "концов", на второй строке параграфа.
376>> Нажмите C-w. Это удалит текст начиная с буквы В, и оканчивающийся перед
377 буквой о.
378
379Отличие между "убить" (killing) и "удалить" (deleting) заключается в том,
380что "убитый" текст может быть заново вставлен (в любой точке), в то время
381как "удаленные" части не могут быть вставлены (вы однако можете отменить
382удаление -- см. ниже). Вставка "убитого" текста называется "восстановление"
383(yanking). В общем, команды, которые могут удалять большие части текста,
384убивают этот текст (они настраиваются так, что вы можете восстановить
385текст), в то время как команды, которые убирают только один символ, или
386убирают только пустые строки и пробельные символы, выполняют операцию
387удаления (так что вы не можете восстановить текст). В простейшем случае,
388без дополнительного аргумента, команды <DEL> и C-d выполняют удаление.
389Однако, если им передан аргумент, то они "убивают" текст.
390
391>> Переместите курсор на начало не пустой строки. Теперь нажмите C-k, чтобы
392 убить текст в этой строке.
393
394>> Нажмите C-k еще раз. Вы видите, что это действие убьет символ новой
395 строки, который следует за этой строкой.
396
397Заметьте, что первое выполнение C-k убивает содержимое строки, а второй
398вызов C-k убивает саму строку и поднимает вверх другие строки. C-k
399обрабатывает числовой аргумент специальным образом -- убивает заданное
400количество строк _И_ их содержимое. Это не просто повторение команды. C-u 2
401C-k удалит две строки, а также завершающие их символы новой строки;
402выполнение C-k два раза подряд этого не сделает.
403
404Возврат убитого ранее текста называется "восстановление" (yanking). (Думайте
405об этом, как о восстановлении или помещении назад некоторого взятого
406текста). Вы можете восстановить убитый текст в месте удаления или в любой
407другой точке редактируемого текста или даже в другом файле. Вы можете
408восстановить текст несколько раз и получить несколько копий данного текста.
be636386 409Некоторые редакторы называют операции "убить" и "восстановить" иначе:
5eb7536f
AO
410"вырезать" (cutting) и "вставить" (pasting) (ознакомьтесь с глоссарием
411(Glossary) в руководстве по Emacs).
412
413Для восстановления убитого текста используется сочетание клавиш C-y. Данная
414команда восстанавливает последний убитый текст в точке расположения курсора.
415
416>> Попробуйте -- наберите C-y, чтобы вставить текст назад.
417
418Помните, что если вы использовали несколько команд C-k подряд, то все убитые
419строки будут сохранены вместе, так что C-y также восстановит их вместе.
420
421>> Попробуйте -- нажмите C-k несколько раз.
422
423Теперь вернем убитый текст:
424
425>> Нажмите C-y. Теперь переместите курсор на несколько строк вниз, и снова
426 нажмите C-y. Вы увидите копию некоторого текста.
427
428Что делать, если есть некоторый текст, который вы хотите вернуть назад, а
429потом убить что-то еще? Одно нажатие C-y вернет только последний удаленный
430текст. Но предыдущий текст не потерян -- вы можете его вернуть назад,
431используя команду M-y. После того как вы вернули последний удаленный текст с
432помощью C-y, нажмите M-y для замены этого восстановленного текста тем,
433который был убит ранее. Выполняя M-y снова и снова, вы будете возвращать
434ранее убитые части текста. Когда вы достигнете нужного текста, то вам не
435нужно ничего делать, чтобы сохранить его. Просто продолжайте работать,
436оставив восстановленный текст там, где он есть.
437
438Нажимая M-y достаточное число раз, вы можете вернуться в начальную точку
439(наиболее раннее удаление).
440
441>> Убейте строку, переместите курсор и убейте еще одну строку. Затем
442 используйте C-y для восстановления второй убитой строки. Затем нажмите
443 M-y, и она будет заменена первой убитой строкой. Нажмите M-y еще
444 несколько раз, чтобы увидеть что вы получаете. Продолжайте выполнять эту
445 команду до тех пор, пока вторая убитая строка не будет восстановлена
446 снова. Если вам хочется, то вы можете задавать положительные и
447 отрицательные аргументы для команды M-y.
448
449
450* ОТМЕНА (UNDO)
a00a4ccb
RS
451---------------
452
5eb7536f
AO
453Если вы сделали изменения в тексте, и решили, что это была ошибка, то вы
454можете отменить изменения с помощью команды "отмена" (undo), которая
455привязана к сочетанию клавиш С-/.
a00a4ccb 456
5eb7536f
AO
457Обычно, C-/ отменяет изменения, сделанные одной командой; если повторить
458C-/ несколько раз подряд, то каждый раз будет отменяться еще одна команда.
a00a4ccb 459
5eb7536f
AO
460Но есть два исключения: не учитываются команды не изменяющие текст (сюда
461включаются команды перемещения курсора и прокрутки текста), а команды
462вставки символов собираются в группы до 20 символов. (Это уменьшает число
463нажатий C-/, которые вам нужно будет набрать для отмены ввода текста).
a00a4ccb 464
5eb7536f
AO
465>> Убейте эту строку с помощью C-k, а затем наберите C-/, и строка должна
466 вернуться назад.
a00a4ccb 467
5eb7536f
AO
468C-_ -- это еще команда отмены; она работает точно так же, как и C-/. На
469некоторых текстовых терминалах, набор C-/ в действительности приводит к
470отправке C-_. Кроме того, вы можете использовать C-x u для выполнения этой
471же операции, но эту команду менее удобно набирать
a00a4ccb 472
5eb7536f 473Числовой аргумент для C-/, C-_ или C-x u используется как счетчик повторений.
a00a4ccb 474
5eb7536f
AO
475Вы можете отменить удаление текста точно так же, как и отмену "убития"
476текста. Отличие между убийством и удалением чего-либо заключается в том,
477что вы можете восстановить убитый текст с помощью команды C-y; но для
478команды отмены нет никакой разницы между этими операциями.
a00a4ccb 479
5eb7536f 480* ФАЙЛЫ
a00a4ccb
RS
481-------
482
5eb7536f
AO
483Для того, чтобы сохранить отредактированный текст вы должны поместить его в
484файл. Иначе он исчезнет, когда вы закончите работу Emacs. Чтобы поместить
485ваш текст в файл, вы должны "найти (открыть)" (find) файл до ввода
486текста. (Эту операцию также называют "посетить" (visiting) файл).
487
488Открыть файл означает что вы видите его содержимое в Emacs. Это практически
489также как редактирование самого файла. Однако, ваши изменения, сделанные с
490помощью Emacs, не будут сохранены, пока вы не сохраните файл. Так что вы
491можете не оставлять частично измененный файл в системе, если вы не хотите
492его сохранять. Даже когда вы сохраняете файл, то Emacs оставляет
493оригинальный файл, но с другим именем, на случай, если вы решите что ваши
494изменения были ошибкой.
495
496Если вы посмотрите в нижнюю часть экрана, то вы увидите строку, которая
497начинается с тире, и начало которой выглядит примерно так " -:--- TUTORIAL.ru".
498Эта часть экрана всегда показывает имя открытого вами файла. Итак, сейчас у
499вас открыт файл с именем "TUTORIAL.ru", который является вашей персональной
500копией учебника Emacs. Когда вы открываете файл в Emacs, имя этого файла
501появится в этой строке.
502
503Одной из вещей, которые вам нужно знать о команде открытия файла -- это то,
504что вы должны ввести имя файла, который нужно открыть. Такие команды мы
505называем командами, "читающими аргумент" (в нашем случае аргументом является
506имя файла). После ввода команды
507
508 C-x C-f Открыть (найти) файл
509
510Emacs попросит вас ввести имя файла. Имя файла набирается в нижней строке
511экрана. Нижняя строка называется мини-буфером когда она используется для
512ввода данных. Вы можете использовать обычные команды редактирования Emacs
513для ввода имени файла.
514
515Когда вы вводите имя файла (или любую другую информацию в мини-буфере), вы
516можете отменить текущую команду нажав C-g.
517
518>> Нажмите C-x C-f, а затем нажмите C-g. Это действие отменит ввод данных в
519 мини-буфере, и заодно и команду C-x C-f, которая использовала мини-буфер
520 для ввода аргумента. В итоге, вы не открыли никакого файла.
521
522Когда вы завершите ввод имени файла, нажмите <Return>. Мини-буфер исчезнет и
523команда C-x C-f выполнит работу по открытию указанного вами файла.
524
525А мгновением позже содержимое файла появится на экране, и вы сможете его
526редактировать. Когда вы захотите сохранить изменения, наберите команду
527
528 C-x C-s Сохранить файл
529
530Эта команда скопирует текст из Emacs в файл. В первый раз, когда вы это
531сделаете, Emacs переименует оригинальный файл в файл с новым именем, так что
532он не будет потерян. Имя файла с предыдущим содержимым получается
533добавлением символа "~" к оригинальному имени файла.
534
535Когда сохранение завершится, Emacs отобразит имя сохраненного файла. Вы
536должны сохранять изменения достаточно часто, чтобы не потерять внесенные
537изменения, если система вдруг "рухнет" (см. раздел "Автоматическое
538сохранение" ниже).
539
540>> Наберите C-x C-s TUTORIAL.ru <Return>.
541 Эта команда должна сохранить вашу копию учебника в файле TUTORIAL.ru. В
542 нижней строке экрана должна появиться надпись "Wrote ...TUTORIAL.ru".
543
544Вы можете открыть существующий файл для просмотра или редактирования. Вы
545также можете открыть файл, который еще не существует. Таким образом вы
546можете создать файл с помощью Emacs: откройте несуществующий файл (Emacs
547покажет его пустым) и вводите в него текст. Когда вы выполните команду
548сохранения файла в первый раз, Emacs создаст настоящий файл с набранным
549вами текстом. Далее, как вы поняли, вы будете редактировать уже существующий
550файл.
551
552
553* БУФЕРА (BUFFERS)
554-----------------
555
556Если вы откроете еще один файл с помощью C-x C-f, то предыдущий файл
557остается внутри Emacs. Вы можете переключиться назад к предыдущему файлу,
558открыв его снова с помощью C-x C-f. Таким образом вы можете загрузить
559большое количество файлов в Emacs.
560
561Emacs хранит текст каждого файла в объекте, называемом "буфер" (buffer).
562Открытие файла создает новый буфер внутри Emacs. Чтобы увидеть список
563буферов, созданных в текущем сеансе Emacs, наберите
564
565 C-x C-b Отобразить список буферов
70ca7cb3 566
5eb7536f 567>> Попробуйте выполнить C-x C-b.
70ca7cb3 568
5eb7536f
AO
569Мы видим, что каждый буфер имеет имя и может иметь связанное с ним имя
570файла, содержимое которого хранится в данном буфере. ЛЮБОЙ текст, который вы
571видите в окне Emacs, всегда является частью какого-либо буфера.
a00a4ccb 572
5eb7536f 573>> Наберите C-x 1, чтобы избавиться от списка буферов.
a00a4ccb 574
5eb7536f
AO
575Когда у вас есть несколько буферов, только один из них является "текущим" в
576конкретный момент времени. Это тот буфер, который вы редактируете. Если вы
577хотите редактировать другой буфер, то вы должны "переключиться" в него.
578Если вы хотите переключиться в буфер, связанный с файлом, то вы можете
579открыть этот файл снова с помощью C-x C-f. Но есть более простой способ --
580использовать команду C-x b. В качестве аргумента для данной команды вы
581должны указать имя буфера.
a00a4ccb 582
5eb7536f
AO
583>> Наберите C-x b foo <Return> для переключения в буфер "foo". Затем
584 наберите C-x b TUTORIAL.ru <Return> для возвращения в буфер с учебником.
a00a4ccb 585
5eb7536f
AO
586Чаще всего имя буфера совпадает с именем файла (только без имени каталога).
587Но иногда это не так. Список буферов, который вы создаете с помощью команды
588C-x C-b, показывает вам имя буфера и имя файла для каждого буфера.
a00a4ccb 589
5eb7536f
AO
590Некоторые буфера не относятся к файлам. Например, буфер с именем "*Buffer
591List*", который создан с помощью C-x C-b и содержит список всех буферов, не
592связан ни с каким файлом. Буфер с данным учебником также сначала не был
593связан с файлом, но сейчас уже связан, поскольку в предыдущем разделе мы
594использовали C-x C-s для сохранения его в файле.
595
596Буфер с именем "*Messages*" также не связан ни с каким файлом; он содержит
597сообщения, которые отображаются в самой нижней строке окна Emacs в течение
598текущего сеанса работы с Emacs.
599
600>> Наберите C-x b *Messages* <Return> для просмотра содержимого буфера
601 сообщений. Затем наберите C-x b TUTORIAL.ru <Return> для возврата к
602 учебнику.
603
604Если вы изменили текст одного файла, а затем открываете другой, то текст в
605первом буфере остается не сохраненным. Изменения останутся внутри Emacs, в
606буфере, связанном с файлом. Создание или редактирование следующего буфера не
607влияет на первый буфер. Это очень удобно, но имейте в виду, что вам нужно
608иметь удобный способ сохранить буфер первого файла. Было бы неприятно каждый
609раз возвращаться назад используя C-x C-f и потом использовать C-x C-s для
610сохранения данных. Поэтому существует команда
611
612 C-x s Сохранить некоторые буфера. (Save some buffers)
613
614C-x s запрашивает у вас подтверждение о сохранении для каждого буфера,
615который содержит не сохраненные изменения. Для каждого такого буфера у вас
616запросят: сохранять или не сохранять изменения.
617
618>> Вставьте строку текста, потом наберите C-x s.
619 Должен появиться запрос: сохранять ли буфер с именем TUTORIAL.ru.
620 Ответьте на запрос утвердительно нажатием клавиши "y".
621
622
623* РАСШИРЕНИЕ НАБОРА КОМАНД
a00a4ccb
RS
624--------------------------
625
5eb7536f
AO
626У Emacs очень много команд, и они все не могут быть назначены на control- и
627meta- сочетания. Emacs решает эту проблему, используя X-команду (eXtend,
628расширять). Есть два варианта:
629
630 C-x Расширение с помощью ввода префикса. За ним следует один символ.
631 M-x Расширение набора команд с помощью их именования. За ним
632 следует имя команды.
633
634Это полезные команды, но они используются менее часто, чем те команды,
635которые мы уже изучили. Вы уже видели некоторые из этих команд. Например,
636команды работы с файлами: C-x C-f -- открыть файл, и C-x C-s -- сохранить
637файл. Другой пример -- команда завершения работы Emacs: C-x C-c. (Не
638волнуйтесь о том, что вы потеряете сделанные изменения, C-x C-c предлагает
639сохранить изменения перед выходом из Emacs).
640
641Если вы работаете на графическом дисплее, то вам не нужно выполнять
642специальных команд чтобы переключится от Emacs к другой программе. Вы можете
643сделать это используя мышь или соответствующее команды операционной системы.
644Но когда вы используете текстовый терминал, который способен показывать
645только одну программу в конкретный момент времени, то для переключения к
646другой программе вам понадобится "приостановить" (suspend) Emacs.
647
648C-z -- это команда *временного* выхода из Emacs. Вы можете позже вернуться в
649ту же сессию Emacs. Когда Emacs запускается на текстовом терминале, команда
650C-z "приостанавливает" (suspend) Emacs, т.е. она возвращает вас в командный
651процессор (shell), но не завершает Emacs. В большинстве командных
652процессоров вы можете вернуться в Emacs с помощью команды `fg' или `%emacs'.
653
654Чтобы покинуть Emacs используйте C-x C-c. Это сочетание также используется,
655чтобы выйти из Emacs, вызванного из почтовой программы или другой утилиты.
656
657Существует много команд с префиксом C-x. Вы уже изучили следующие команды:
658
659 C-x C-f Открыть файл
660 C-x C-s Сохранить файл
661 C-x s Сохранить некоторые буфера
662 C-x C-b Получить список буферов
663 C-x b Переключиться в буфер
664 C-x C-c Завершить Emacs
665 C-x 1 Удалить все окна, кроме текущего
666 C-x u Отмена изменений
667
668Именованные расширенные команды -- это команды, которые используются гораздо
669реже, или используются только в определенных режимах. В качестве примера
670можно привести команду replace-string, которая заменяет одну строку на
671другую во всем тексте. Когда вы наберете M-x, Emacs предложит вам ввести имя
672команды; в нашем случае это команда "replace-string". Наберите лишь
673"repl-s<TAB>", и Emacs дополнит имя. (<TAB> -- это клавиша табуляции, обычно
674находящаяся над клавишами CapsLock или Shift в левой части клавиатуры.)
675Подтвердите имя нажатием <Return>.
676
677Команда replace-string требует два аргумента -- строку, которая будет
678заменена, и строку, на которую нужно заменить. Вы должны завершать каждый
679аргумент вводом <Return>.
680
681>> Переместите курсор к пустой строке на две строчки ниже этой.
682 Наберите M-x repl-s<Return>файл<Return>файлы<Return>.
683
684 Заметьте, как эта строчка изменится: вы замените слово файл
685 словом "файлы" везде, где оно встретится, ниже позиции курсора.
686
687
688* АВТОМАТИЧЕСКОЕ СОХРАНЕНИЕ
70ca7cb3 689---------------------------
a00a4ccb 690
5eb7536f
AO
691Если вы измените файл, но не сохраните его, то в случае "падения" системы вы
692можете потерять информацию. Чтобы защитить вас от этого, Emacs периодически
693сохраняет каждый файл, который вы редактируете. Автоматически сохраняемый
694файл имеет имя с символами "#" в начале и в конце. Например, если ваш файл
695называется "hello.c", то автоматически сохраненный файл будет называться
696"#hello.c#". Когда вы сохраните файл обычным способом, Emacs удаляет
697автоматически сохраненный файл.
a00a4ccb 698
5eb7536f
AO
699Если система зависла, то вы можете восстановить ваши изменения, которые были
700сохранены автоматически, путем открытия нужного файла (файла, который вы
701редактировали, а не того, что бы сохранен автоматически) и затем набрав M-x
702recover-file<Return>. Когда у вас запросят подтверждение, наберите
703yes<Return>, чтобы восстановить автоматически сохраненные данные.
a00a4ccb
RS
704
705
5eb7536f 706* ОБЛАСТЬ ЭХА (ECHO AREA)
a00a4ccb
RS
707-------------------------
708
5eb7536f
AO
709Если Emacs видит, что вы медленно набираете команды из нескольких сочетаний
710клавиш, то он покажет их вам в нижней части экрана, в области называемой
711"область эха" (echo area). Область эха -- это самая нижняя строка окна
712Emacs.
a00a4ccb
RS
713
714
5eb7536f
AO
715* СТРОКА СОСТОЯНИЯ (MODE LINE)
716-----------------------------
a00a4ccb 717
5eb7536f
AO
718Строка сразу над областью эха называется "строкой состояния" (mode
719line). Выглядит эта строка примерно так:
a00a4ccb 720
70ca7cb3 721--:** TUTORIAL.ru 63% L749 (Fundamental)-----------------------
a00a4ccb 722
5eb7536f
AO
723Эта строка сообщает полезную информацию о состоянии Emacs и текста, который
724вы редактируете.
a00a4ccb 725
5eb7536f
AO
726Вы уже знаете, что означает имя файла -- это файл, который вы открыли. NN%
727показывает вашу текущую позицию в тексте. Это означает что NN процентов
728текста находятся выше начала окна. Если отображается начало текста, вы
729увидите "Top" вместо "0%". Если отображается конец текста, то будет
730отображено "Bot". Если текст настолько мал, что вмещается в один экран, то
731строка состояния сообщит "All".
70ca7cb3 732
5eb7536f
AO
733Буква L и цифры показывают позицию другим способом -- они показывают номер
734строки в которой находится курсор.
70ca7cb3 735
5eb7536f
AO
736Звездочки в начале строки означают, что вы изменяли текст. Сразу после
737открытия или сохранения файла эта часть строки будет содержать не звездочки,
738а тире.
70ca7cb3 739
5eb7536f
AO
740Часть строки состояния внутри скобок сообщает вам о режиме редактирования,
741который вы сейчас используете. Стандартный, или базовый, режим -- Fundamental,
742он используется и в данном учебнике. Это пример "основного режима" ("major
70ca7cb3
TTN
743mode").
744
5eb7536f
AO
745Emacs имеет много различных основных режимов. Некоторые из режимов
746используются для редактирования текста на различных языках и/или различных
747видов текста, такие как Lisp-режим, Text-режим и пр. В каждый момент
748времени действует только один основной режим, и его название вы можете найти
749в скобках -- там, где сейчас находится слово "Fundamental" (базовый).
750
751Каждый основной режим заставляет некоторые команды вести себя по разному.
752Например, имеются команды создания комментариев в программе, и поскольку в
753каждом языке программирования комментарии записываются по своему, то и
754каждый основной режим вставляет их по разному. Каждый основной режим имеет
755именованную команду, которая включает его. Например, M-x fundamental-mode --
756это команда, которая включает базовый (Fundamental) режим.
757
758Если вы редактируете текст на естественном языке, например, как этот файл,
759то вы, вероятно должны переключиться в режим Text.
760
761>> Наберите M-x text mode<Return>.
762
763Не волнуйтесь, ни одна из выученных вами команд Emacs не изменилась. Но вы
764можете заметить, что M-f и M-b теперь рассматривают апострофы как часть
765слова. Ранее, в базовом режиме (Fundamental mode), M-f и M-b воспринимали
766апострофы как разделители слов.
767
768Как правило, основные режимы производят незначительные изменения:
769большинство команд "работает одинаково" в каждом из режимов, но их действие
770отличается какой-нибудь мелочью.
771
772Для просмотра документации о текущем основном режиме, нажмите C-h m.
773
774>> Используйте C-l C-l чтобы расположить эту строку вверху экрана.
775>> Наберите C-h m, чтобы посмотреть отличия Text-режима от базового.
776>> Наберите C-x 1, чтобы убрать документацию с глаз долой :)
777
778Основной режим называется основным потому, что также существуют
779дополнительные (minor) режимы. Дополнительные режимы не являются
780альтернативами основным, они только немного изменяют их поведение. Каждый
781дополнительный режим включается/выключается независимо от других
782дополнительных режимов и независимо от вашего основного режима. Вы можете
783использовать основной режим без дополнительных, или с любой комбинацией
784нескольких дополнительных режимов.
785
786Один из дополнительных режимов очень полезен, особенно для редактирования
787текста -- это режим автозаполнения (Auto Fill mode). Когда этот режим
788включен, то Emacs автоматически разрывает строку между словами в тех
789случаях, когда вставленный текст делает строку слишком длинной.
790
791Вы можете включить режим автозаполнения, набрав M-x auto-fill-mode<Return>.
792Когда этот режим включен, его можно выключить с помощью той же команды --
793M-x auto-fill-mode<Return>. Если режим включен, то такая команда его
794выключит, если выключен, то включит. Мы говорим что команда "переключает
795режим".
796
797>> Наберите M-x auto-fill-mode<Return>. Затем вводите строку из слов "фыва "
798 пока не увидите, как она разделится на две строки. Эти пробелы между
799 словами необходимы, потому что режим автозаполнения разбивает строки
800 только по пробелам.
801
802Граница разбиения обычно равна 70-ти символам, но вы можете изменить ее
803используя команду C-x f. Вы должны задать границу в виде числового
804аргумента для этой команды.
805
806>> Введите C-x f с аргументом 20 (C-u 2 0 C-x f).
807 Затем введите какой-нибудь текст и посмотрите как Emacs заполняет строки
808 по 20 символов в каждой. Верните значение границы равное 70 назад,
809 используя команду C-x f.
810
811Если вы сделали изменения в середине параграфа, то автозаполнение не
812переформатирует текст автоматически.
813Чтобы переформатировать параграф, наберите M-q (META-q), когда курсор
814находится внутри параграфа.
815
816>> Переместите курсор в предыдущий параграф, и нажмите M-q.
817
818
819* ПОИСК
a00a4ccb
RS
820-------
821
5eb7536f
AO
822Emacs умеет искать строки (строка -- непрерывная группа символов) вперед или
823назад по тексту. Поиск строки -- это команда перемещения курсора -- она
824перемещает курсор в следующую точку, где найдена искомая строка.
825
826Команда поиска в Emacs является инкрементальной. Это означает, что поиск
827происходит по мере того, как вы набираете искомую строку.
828
829Команда, начинающая поиск вперед -- C-s, а C-r ищет назад. ПОДОЖДИТЕ! Не
830нужно пробовать прямо сейчас.
831
832Когда вы нажмете C-s, вы увидите строку "I-search", появившуюся в области
833эха. Вам сообщается, что Emacs ждет ввода строки, которую вы хотите найти.
834<Return> завершает поиск.
835
836>> Теперь нажмите C-s для начала поиска. Медленно, по одной букве, набирайте
837 слово 'курсор', останавливаясь после каждой введенной буквы и замечая, что
838 происходит с курсором.
839 Сейчас вы нашли первое вхождение слова "курсор".
840>> Нажмите C-s снова, чтобы найти следующее вхождение слова "курсор".
841>> Теперь нажмите <DEL> четыре раза и проследите за перемещениями курсора.
842>> Нажмите <Return> для завершения поиска.
843
844Вы заметили, что произошло? Emacs в режиме инкрементального поиска пытался
845переходить к строкам, совпадающим с набираемой вами строкой. Чтобы перейти
846к следующему вхождению слова 'курсор', просто нажмите C-s снова. Если больше
847нет вхождений, то Emacs издаст звуковой сигнал и сообщит, что ваш поиск не
848удался ("failing"), C-g также завершает поиск.
849
850Если вы во время инкрементального поиска нажмете <DEL>, то поиск "вернется"
851к предыдущему найденному месту. Если вы наберете <DEL> сразу после того как
852вы нажали C-s для перемещения к следующей позиции, то <DEL> переместит к
853предыдущему вхождению. Если предыдущей позиции не было, то <DEL> удалит
854последний символ в строке поиска. Например, предположим, что вы набрали "к",
855поиск перейдет к первому вхождению символа "к". Теперь, если вы наберете
856"у", курсор перейдет к первому вхождению "ку". Нажатие <DEL> удалит символ
857"у" из строки поиска, и курсор вернется к первому вхождению "к".
858
859Если вы во время поиска введете control- или meta- сочетание клавиш (за
860некоторыми исключениями, например, такими, как C-s и C-r, которые имеют
861специальное значение в поиске), то поиск прекратится.
862
863C-s начинает поиск и ищет любые вхождения искомой строки ПОСЛЕ текущей
864позиции курсора. Если вы хотите найти что-то ранее в тексте, то нажмите
865C-r. Все, что мы говорили о C-s, применимо и к C-r, только C-r ищет в
866противоположном направлении.
867
868
869* МНОЖЕСТВО ОКОН (MULTIPLE WINDOWS)
17287102 870-----------------------------------
a00a4ccb 871
5eb7536f
AO
872Одной из приятных возможностей Emacs является то, что вы можете одновременно
873отображать на экране несколько окон. (Заметьте, что Emacs использует термин
874"фрейм" (frame), описанный в следующем разделе, для того, что другие
875приложения называют окна. В Руководстве Emacs имеется подробный глоссарий).
a00a4ccb 876
5eb7536f 877>> Переместите курсор на эту строку и наберите C-l C-l.
a00a4ccb 878
5eb7536f
AO
879>> Теперь наберите C-x 2, что разделит экран на два окна.
880 Оба окна отображают учебник. Курсор остался в верхнем окне.
a00a4ccb 881
5eb7536f
AO
882>> Нажмите C-M-v для прокрутки нижнего окна.
883 (если у вас нет клавиши META (Alt), то нажмите <ESC> C-v.)
a00a4ccb 884
5eb7536f
AO
885>> Нажмите C-x o ("o" от слова "other" -- другое) для перемещения курсора в
886 нижнее окно.
887>> Используйте C-v и M-v в нижнем окне, для прокрутки текста.
888 Продолжите чтение этой инструкции в верхнем окне.
a00a4ccb 889
5eb7536f
AO
890>> Снова нажмите C-x o, чтобы переместить курсор назад в верхнее окно.
891 Курсор в верхнем окне там же, где и был до того.
a00a4ccb 892
5eb7536f
AO
893Вы можете продолжать использовать C-x o для переключения между окнами.
894"Выбранное окно", где производится редактирование -- это окно с видимым
895курсором, который мигает когда вы не набираете текст. Остальные окна
896сохраняют собственные позиции курсора. Если вы используете Emacs в
897графической среде, то эти курсоры будут отображаться как немигающие полые
898прямоугольники.
a00a4ccb 899
5eb7536f
AO
900Команда C-M-v очень удобна, когда вы редактируете текст в одном окне, а
901второе используете в качестве справочника. С помощью C-M-v вы можете
902прокручивать текст в другом окне не покидая текущего окна.
a00a4ccb 903
5eb7536f
AO
904C-M-v -- пример CONTROL-META сочетания клавиш. Если у вас есть клавиша META
905(или Alt), то вы можете набрать C-M-v, нажав одновременно CONTROL и META и,
906не отпуская их, нажать v. Не важно, какая из клавиш, CONTROL или META, будет
907нажата первой, поскольку обе эти клавиши изменяют набираемый вами символ.
a00a4ccb 908
5eb7536f
AO
909Если у вас нет клавиши META, и вместо нее вы используете <ESC>, то порядок
910нажатия важен: сначала вы должны нажать <ESC>, а затем CTRL-v, поскольку
911CONTROL-<ESC> v не будет работать. Это происходит потому, что <ESC> сама
912является символом, а не модифицирующей клавишей.
a00a4ccb 913
5eb7536f
AO
914>> Нажмите C-x 1 (в верхнем окне), чтобы избавиться от нижнего окна.
915
916(Если бы вы нажали C-x 1 в нижнем окне, то вы бы избавились от верхнего.
917Понимайте эту команду как "Оставить только одно окно -- то, в котором я
918сейчас нахожусь").
919
920Вам не нужно отображать один и тот же буфер в обоих окнах. Если вы
921используете C-x C-f, чтобы открыть файл в одном окне, другое останется без
922изменения. Вы можете независимо открывать файлы в каждом окне.
923
924Есть и другой путь использовать два окна, отображающих разные файлы:
925
926>> Наберите C-x 4 C-f, и введите имя одного из ваших файлов. Завершите ввод
927 нажатием <Return>. Заметьте, что выбранный файл появился в нижнем окне.
928 Курсор перешел туда же.
929
930>> Наберите C-x o, чтобы вернуться в верхнее окно, и затем C-x 1, чтобы
931 удалить нижнее окно.
932
933
934* МНОЖЕСТВО ФРЕЙМОВ (MULTIPLE FRAMES)
935-------------------------------------
a00a4ccb 936
5eb7536f
AO
937Emacs также может создавать множество "фреймов" (frames). Фрейм -- это то,
938что мы называем коллекцией окон, вместе со строкой меню, полосами прокрутки,
939областью эхо, и т.д. На графических дисплеях, то что в Emacs называется
940"фрейм", большинство других приложений называют "окно". В графической среде
941одновременно может быть отображено несколько фреймов. А на текстовых
942терминалах, может быть показан только один фрейм в конкретный момент
943времени.
a00a4ccb 944
5eb7536f
AO
945>> Наберите M-x make-frame <Return>.
946 Вы увидите что новый фрейм появился на экране.
a00a4ccb 947
5eb7536f
AO
948В новом фрейме вы можете делать все то же самое что и в оригинальном
949фрейме. Между ними нет особых отличий.
a00a4ccb 950
5eb7536f
AO
951>> Наберите M-x delete-frame <Return>.
952 Эта команда удалит текущий фрейм.
a00a4ccb 953
5eb7536f
AO
954Вы также можете удалить фрейм используя стандартные методы вашей графической
955среды (часто путем нажатия кнопки "X" в верхней части фрейма). Если вы
956таким способом удалите последний имеющийся фрейм Emacs, то это приведет к
957завершению работы Emacs.
a00a4ccb
RS
958
959
5eb7536f 960* РЕКУРСИВНЫЕ УРОВНИ РЕДАКТИРОВАНИЯ (RECURSIVE EDITING LEVELS)
a00a4ccb
RS
961--------------------------------------------------------------
962
5eb7536f
AO
963Иногда вы будете попадать в так называемые "рекурсивные уровни
964редактирования". На это указывают прямоугольные скобки в строке состояния,
965окружающие обычные скобки вокруг имени основного режима. Например, вы
966увидите [(Fundamental)] вместо (Fundamental).
a00a4ccb 967
5eb7536f
AO
968Чтобы выйти из рекурсивных уровней редактирования, нажмите <ESC> <ESC>
969<ESC>. Это многоцелевая команда "выхода". Вы также можете использовать ее
970как для уничтожения лишних окон, так и для выхода из мини-буфера.
a00a4ccb 971
5eb7536f
AO
972>> Нажмите M-x, чтобы попасть в мини-буфер, а затем нажмите <ESC> <ESC>
973 <ESC>, чтобы покинуть его.
a00a4ccb 974
5eb7536f
AO
975Вы не можете использовать C-g для выхода из рекурсивных уровней
976редактирования. Это потому, что C-g используется для отмены команд и
977аргументов ВНУТРИ рекурсивных уровней редактирования.
a00a4ccb
RS
978
979
5eb7536f 980* КАК ПОЛУЧИТЬ ДОПОЛНИТЕЛЬНУЮ ПОМОЩЬ
70ca7cb3 981------------------------------------
a00a4ccb 982
5eb7536f
AO
983В этом учебнике мы попытались снабдить вас достаточной информацией для
984начала использования Emacs. В Emacs очень много разной функциональности, и
985представить все это здесь не представляется возможным. Однако, возможно вы
986захотите узнать больше о возможностях Emacs. Emacs предоставляет команды
987для чтения документации о командах Emacs. Все команды "справки" (help)
988начинаются с сочетания CONTROL-h, который является "символом справки".
70ca7cb3 989
5eb7536f
AO
990Чтобы использовать справку, нажмите C-h, а затем -- символ, который
991расскажет, какой именно вид справки вы хотите получить. Если вы
992ДЕЙСТВИТЕЛЬНО растерялись, наберите C-h ?, и Emacs расскажет вам о том,
993какую справку он может вам предоставить. Если вы нажали C-h и передумали
994обращаться к справке, то просто нажмите C-g, чтобы отменить эту команду.
70ca7cb3 995
5eb7536f
AO
996(Если C-h не отображает справку внизу экрана, то попробуйте вместо этого
997нажать клавишу F1 или набрать M-x help RET).
70ca7cb3 998
5eb7536f
AO
999Одна из самых главных функций справки -- C-h c. Нажмите C-h, а затем c и
1000символ команды или последовательность, и Emacs отобразит краткое описание
1001набранной команды.
a00a4ccb 1002
5eb7536f 1003>> Нажмите C-h c C-p.
70ca7cb3 1004
5eb7536f 1005Сообщение должно выглядеть примерно так:
a00a4ccb
RS
1006
1007 C-p runs the command previous-line
5eb7536f 1008 (C-p выполняет команду previous-line {предыдущая строка})
a00a4ccb 1009
5eb7536f
AO
1010Вам сообщают "имя функции". Поскольку имена функций выбраны так, чтобы
1011показать, что именно команда делает, то они могут служить короткой
1012документацией -- достаточно чтобы напомнить вам об уже выученных командах.
a00a4ccb 1013
5eb7536f
AO
1014Многосимвольные сочетания клавиш, такие как C-x C-s и (если у вас нет клавиши
1015META или EDIT или ALT) <ESC> v также будут доступны для получения справки с
1016помощью C-h c.
a00a4ccb 1017
5eb7536f 1018Вы можете получить больше информации о сочетании клавиш используя C-h k вместо C-h c.
a00a4ccb 1019
5eb7536f 1020>> Наберите C-h k C-p.
a00a4ccb 1021
5eb7536f
AO
1022В отдельном окне Emacs вы увидите описание функции, а также ее имя. Когда вы
1023завершите чтение, нажмите C-x 1, чтобы избавиться от окна с текстом справки.
1024Не обязательно нажимать C-x 1 сразу: вы можете сначала выполнить какие-либо
1025изменения текста во время просмотра текста справки, и только затем нажать
de04a3ca 1026C-x 1.
a00a4ccb 1027
5eb7536f 1028Есть еще несколько полезных функций, доступных через C-h:
a00a4ccb 1029
5eb7536f 1030 C-h f Описывает функцию. Вам необходимо набрать имя функции.
a00a4ccb 1031
5eb7536f
AO
1032>> Попробуйте набрать C-h f previous-line<Return>.
1033 Это отобразит информацию Emacs о функции, которая выполняется командой
70ca7cb3 1034 C-p.
a00a4ccb 1035
5eb7536f
AO
1036Аналогичная команда C-h v отображает документацию о переменных, включая те,
1037значение которых вы можете изменить для настройки поведения Emacs. Вам нужно
1038набрать имя переменной, когда Emacs запросит его.
a00a4ccb 1039
5eb7536f
AO
1040 C-h a (Command Apropos). Введите ключевое слово и Emacs покажет вам
1041 список всех команд и функций, имена которых содержат это слово.
1042 Эти команды могут быть запущены с помощью Meta-x.
1043 Для некоторых команд, эта команда также покажет последовательности
1044 клавиш которые могут использоваться для их запуска.
a00a4ccb 1045
5eb7536f 1046>> Наберите C-h a file<Return>.
a00a4ccb 1047
5eb7536f
AO
1048Это отобразит в другом окне список всех команд M-x, у которых в именах
1049содержится слово "file". Также в списке кроме таких команд, как find-file,
1050вы увидите соответствующие символьные команды, такие как C-x C-f.
a00a4ccb 1051
5eb7536f 1052>> Наберите C-M-v для прокрутки окна справки. Выполните это несколько раз.
a00a4ccb 1053
5eb7536f 1054>> Наберите C-x 1 для удаления окна справки.
a00a4ccb 1055
5eb7536f
AO
1056 C-h i Читать интерактивные руководства (команда Info). Эта команда
1057 переходит в специальный буфер с именем `*info*', где вы можете
1058 читать интерактивные руководства для пакетов, установленных в вашей
1059 системе. Наберите m emacs <Return> для чтения руководства по
1060 Emacs. Если вы никогда ранее не использовали Info, то наберите ? и
1061 Emacs откроет учебник по возможностям режима Info. Однажды
1062 ознакомившись с этим учебником, вы должны использовать руководство
1063 Emacs Info в качестве основной документации.
70ca7cb3
TTN
1064
1065
5eb7536f 1066* ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ
70ca7cb3
TTN
1067----------------------------
1068
5eb7536f
AO
1069Вы можете узнать больше об Emacs, читая руководство по нему, книги или
1070интерактивный справочник (используйте меню Help или наберите F10 h r). Вам
1071особенно понравятся две функции -- дополнение имен (completion), которое
1072сокращает количество нажимаемых клавиш, и dired, который упрощает работу с
1073файлами.
70ca7cb3 1074
5eb7536f
AO
1075Дополнение имен используется для того, чтобы избежать набора лишних
1076символов. Например, если вы хотите переключиться в буфер *Messages*, то вы
1077можете набрать C-x b *M<Tab> и Emacs дополнит остаток имени буфера,
1078поскольку он может определить его из того, что вы уже набрали. Дополнение
1079имен описано в Info-версии руководства по Emacs в разделе "Completion".
70ca7cb3 1080
5eb7536f
AO
1081Dired позволяет вам отображать список файлов в каталоге (а также
1082подкаталогах, в зависимости от настройки), перемещаться по списку файлов,
1083открывать их, переименовывать, удалять и выполнять прочие действия над
1084файлами. Dired описан в Info-версии руководства по Emacs в разделе "Dired".
70ca7cb3 1085
5eb7536f 1086В руководстве также описаны остальные возможности Emacs.
a00a4ccb
RS
1087
1088
5eb7536f 1089* ЗАКЛЮЧЕНИЕ
a00a4ccb
RS
1090------------
1091
5eb7536f 1092Для выхода из Emacs, используется сочетание клавиш C-x C-c.
a00a4ccb 1093
5eb7536f
AO
1094Этот учебник должен быть понятен всем новым пользователям, но если вы
1095найдете что-нибудь неясное, не нужно сидеть и порицать себя -- жалуйтесь!
a00a4ccb
RS
1096
1097
5eb7536f 1098* УСЛОВИЯ РАСПРОСТРАНЕНИЯ
70ca7cb3 1099-------------------------
a00a4ccb 1100
5eb7536f
AO
1101Этот учебник произошел из длинной серии учебников Emacs, начатой с однажды
1102написанного Stuart Cracraft учебника для оригинального Emacs.
a00a4ccb 1103
5eb7536f
AO
1104Эта версия учебника, как и GNU Emacs, защищена правами копирования
1105(copyrighted) и приходит с ограничениями распространения копий со
1106следующими соглашениями:
a00a4ccb 1107
ab422c4d 1108Copyright (C) 1985, 1996, 1998, 2001-2013 Free Software Foundation, Inc.
a00a4ccb
RS
1109
1110 Permission is granted to anyone to make or distribute verbatim copies
1111 of this document as received, in any medium, provided that the
1112 copyright notice and permission notice are preserved,
1113 and that the distributor grants the recipient permission
1114 for further redistribution as permitted by this notice.
1115
1116 Permission is granted to distribute modified versions
1117 of this document, or of portions of it,
1118 under the above conditions, provided also that they
1119 carry prominent notices stating who last altered them.
1120
5eb7536f
AO
1121Условия распространения самого Emacs более сложные, но примерно в том же духе.
1122Пожалуйста, прочтите файл COPYING и затем раздайте копию GNU Emacs вашим
1123друзьям. Помогите уничтожить обструкционизм в области программного
1124обеспечения ("владение"), используя, создавая и распространяя свободное
1125программное обеспечение!
a00a4ccb 1126
5eb7536f 1127// жду замечаний и исправления ошибок по адресу alexott@gmail.com.
177c0ea7 1128// Alex Ott.
88a86604 1129
c76dac70 1130;;; Local Variables:
5eb7536f 1131;;; coding: utf-8
c76dac70 1132;;; sentence-end-double-space: nil
5eb7536f 1133;;; fill-column: 76
c76dac70
JL
1134;;; End:
1135