comparison etc/tutorials/TUTORIAL.ru @ 91451:6aef7dd0e34b

Restore copyright years. Update tutorial. Fix wording.
author Eli Zaretskii <eliz@gnu.org>
date Sat, 02 Feb 2008 10:59:22 +0000
parents 852ae38a0128
children f991f10f15ec
comparison
equal deleted inserted replaced
91450:afc545f3960e 91451:6aef7dd0e34b
1 Учебник Emacs. Условия распространения приведены в конце файла 1 Учебник Emacs. Условия копирования приведены в конце файла.
2 2
3 Для управления Emacs обычно используется ключ (key -- сочетание клавиш 3 Для управления Emacs'ом обычно используется ключ (key -- сочетание клавиш
4 клавиатуры и/или кнопок мыши), включающий в себя клавишу CONTROL (иногда 4 клавиатуры и/или кнопок мыши), включающий в себя клавишу CONTROL (иногда
5 отмечаемая как CTRL или CTL) или клавишу META (иногда помеченную как ALT или 5 отмечаемая как CTRL или CTL) или клавишу META (иногда помеченную как ALT или
6 EDIT). В дальнейшем, вместо того, чтобы каждый раз писать META или CONTROL, 6 EDIT). В дальнейшем, вместо того, чтобы каждый раз писать META или CONTROL,
7 мы будем использовать следующие сокращения: 7 мы будем использовать следующие сокращения:
8 8
9 C-<chr> -- следует удерживать клавишу CONTROL, пока набирается символ 9 C-<chr> -- следует удерживать клавишу CONTROL, пока набирается символ
10 <chr>. Так, C-f должно означать: нажать клавишу CONTROL и f. 10 <chr>. Так, C-f должно означать: нажать клавишу CONTROL и f.
11 M-<chr> -- следует удерживать клавишу META, пока набирается символ 11 M-<chr> -- следует удерживать клавишу META, пока набирается символ
12 <chr>. Если нет клавиши META, ALT или EDIT, то нажмите <ESC>, 12 <chr>. Если нет клавиши META, ALT или EDIT, то нажмите <ESC>,
13 отпустите ее, а потом наберите символ <chr>. 13 отпустите ее, а потом наберите символ <chr>.
14 14
15 Важное замечание: для завершения сеанса Emacs, наберите C-x C-c (два 15 Важное замечание: для завершения сеанса Emacs, наберите C-x C-c (два
21 21
22 22
23 23
24 24
25 25
26 [Середина страницы оставлена пустой в учебных целях. Текст продолжается ниже] 26 [Середина страницы оставлена пустой в учебных целях. Текст продолжается ниже]
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 >> Теперь нажмите C-v (просмотр следующего экрана) для перемещения на 35 >> Теперь нажмите C-v (просмотр следующего экрана) для перемещения на
36 следующий экран. (выполните эту команду удерживая клавишу CONTROL и 36 следующий экран. (Выполните эту команду удерживая клавишу CONTROL и
37 нажимая v). Теперь вы должны это сделать еще раз, когда закончите читать 37 нажимая v.) Теперь вы должны это сделать еще раз, когда закончите читать
38 экран. 38 экран.
39 39
40 Обратите внимание на то, что при переходе с экрана на экран перекрываются 40 Обратите внимание на то, что при переходе с экрана на экран перекрываются
41 две строчки -- это обеспечивает некоторую непрерывность восприятия, так что 41 две строчки -- это обеспечивает некоторую непрерывность восприятия, так что
42 вы можете продолжать читать текст не теряя нити повествования. 42 вы можете продолжать читать текст не теряя нити повествования.
54 54
55 Для просмотра используются следующие команды: 55 Для просмотра используются следующие команды:
56 56
57 C-v Перейти на один экран вперед 57 C-v Перейти на один экран вперед
58 M-v Перейти на один экран назад 58 M-v Перейти на один экран назад
59 C-l Очистить экран и отобразить все заново, разместив текст, находящийся 59 C-l Очистить экран и отобразить все заново,
60 возле курсора, в центре экрана. (это CONTROL-L, а не CONTROL-1.) 60 разместив текст, находящийся возле курсора,
61 в центре экрана. (это CONTROL-L, а не CONTROL-1.)
61 62
62 >> Найдите курсор и запомните текст возле него. Потом нажмите C-l. 63 >> Найдите курсор и запомните текст возле него. Потом нажмите C-l.
63 Найдите курсор снова и убедитесь, что возле него все тот же текст. 64 Найдите курсор снова и убедитесь, что возле него все тот же текст.
64 65
65 Вы также можете использовать клавиши PageUp и PageDn для перемещения между 66 Вы также можете использовать клавиши PageUp и PageDn для перемещения между
71 ------------------------------------- 72 -------------------------------------
72 73
73 Движение от экрана к экрану удобно, но как переместиться в определенное 74 Движение от экрана к экрану удобно, но как переместиться в определенное
74 место в тексте на экране? 75 место в тексте на экране?
75 76
76 Есть несколько способов выполнения этой операции. Вы можете использовать 77 Есть несколько способов выполнения этой операции. Вы можете использовать
77 клавиши управления курсором (стрелки), но более эффективным будет сохранение 78 клавиши управления курсором (стрелки), но более эффективным будет сохранение
78 рук в их стандартной позиции и использовать команды C-p, C-b, C-f и C-n. Эти 79 рук в их стандартной позиции и использовать команды C-p, C-b, C-f и C-n. Эти
79 команды эквивалентны четырем клавишам перемещения курсора, как это показано 80 команды эквивалентны четырем клавишам перемещения курсора, как это показано
80 на схеме: 81 на схеме:
81 82
86 : 87 :
87 : 88 :
88 Следующая строка, C-n 89 Следующая строка, C-n
89 90
90 >> Переместите курсор на строку рядом с диаграммой, используя сочетания 91 >> Переместите курсор на строку рядом с диаграммой, используя сочетания
91 клавиш C-n или C-p. Потом нажмите C-l и посмотрите как диаграмма 92 клавиш C-n или C-p. Потом нажмите C-l и посмотрите как диаграмма
92 переместится в центр экрана. 93 переместится в центр экрана.
93 94
94 Вам будет несложно запомнить эти команды по первым буквам соответствующих 95 Вам будет несложно запомнить эти команды по первым буквам соответствующих
95 слов -- B-назад (backward) и F-вперед (forward). Это основные команды 96 слов -- B-назад (backward) и F-вперед (forward). Это основные команды
96 позиционирования курсора, которыми вы будете пользоваться ВСЕГДА, так что 97 позиционирования курсора, которыми вы будете пользоваться ВСЕГДА, так что
101 >> Переместитесь по строке, используя C-f, и потом поднимитесь вверх с 102 >> Переместитесь по строке, используя C-f, и потом поднимитесь вверх с
102 помощью C-p. Посмотрите, как изменилось положение курсора при нажатии 103 помощью C-p. Посмотрите, как изменилось положение курсора при нажатии
103 С-р, если он находился в середине строки. 104 С-р, если он находился в середине строки.
104 105
105 Каждая строка текста завершается символом перевода строки (Newline 106 Каждая строка текста завершается символом перевода строки (Newline
106 character), который отделяет ее от следующей строки. Последняя строка в 107 character), который отделяет ее от следующей строки. Лучше если последняя
107 вашем файле должна бы тоже завершаться символом перевода строки (но Emacs не 108 строка в вашем файле тоже завершалась бы символом перевода строки (но Emacs не
108 требует этого). 109 требует этого).
109 110
110 >> Попробуйте использовать C-b в начале строки. Курсор должен переместиться 111 >> Попробуйте использовать C-b в начале строки. Курсор должен переместиться
111 на конец предыдущей строки. Это происходит потому, что он движется назад 112 на конец предыдущей строки. Это происходит потому, что он движется назад
112 через символ перевода строки. 113 через символ перевода строки.
117 движется курсор. Далее используйте сочетание клавиш C-f чтобы вернуться 118 движется курсор. Далее используйте сочетание клавиш C-f чтобы вернуться
118 на конец строки. Нажмите C-f еще раз, чтобы перейти к началу следующей 119 на конец строки. Нажмите C-f еще раз, чтобы перейти к началу следующей
119 строки. 120 строки.
120 121
121 Когда вы перемещаетесь за верхний или нижний край экрана, текст, находящийся 122 Когда вы перемещаетесь за верхний или нижний край экрана, текст, находящийся
122 за экраном, сдвигается внутрь экрана. Это называется "прокрутка 123 за экраном, сдвигается внутрь экрана. Это называется "прокрутка"
123 (scrolling)". Прокрутка позволяет Emacs'у перемещать курсор в нужное место 124 (scrolling). Прокрутка позволяет Emacs'у перемещать курсор в нужное место
124 текста без перемещения его за пределы экрана. 125 текста без перемещения его за пределы экрана.
125 126
126 >> Попробуйте переместить курсор за нижнюю границу экрана, используя C-n, и 127 >> Попробуйте переместить курсор за нижнюю границу экрана, используя C-n, и
127 посмотрите, что произойдет. 128 посмотрите, что произойдет.
128 129
158 159
159 Положение курсора в тексте также называют "точкой вставки". Скажем иначе: 160 Положение курсора в тексте также называют "точкой вставки". Скажем иначе:
160 курсор показывает место на экране в какой точке будет расположен вводимый 161 курсор показывает место на экране в какой точке будет расположен вводимый
161 текст. 162 текст.
162 163
163 Здесь собраны основные команды перемещения курсора, включая движение по 164 Вот сводный список всех основных команд перемещения курсора, включая движение
164 словам и предложениям: 165 по словам и предложениям:
165 166
166 C-f На символ вперед 167 C-f На символ вперед
167 C-b На символ назад 168 C-b На символ назад
168 169
169 M-f На слово вперед 170 M-f На слово вперед
192 193
193 >> Сейчас попробуйте M-<, чтобы переместиться в начало учебника. Потом 194 >> Сейчас попробуйте M-<, чтобы переместиться в начало учебника. Потом
194 используйте C-v, чтобы вернуться назад. 195 используйте C-v, чтобы вернуться назад.
195 196
196 >> Сейчас попробуйте M->, чтобы переместиться к концу учебника. Используйте 197 >> Сейчас попробуйте M->, чтобы переместиться к концу учебника. Используйте
197 M-v, чтобы вернуться снова. 198 M-v, чтобы вернуться назад.
198 199
199 Курсор можно перемещать клавишами управления курсора (стрелками), если ваш 200 Курсор можно перемещать клавишами управления курсора (стрелками), если ваш
200 терминал оборудован ими. Мы рекомендуем выучить C-b, C-f, C-n и C-p по трем 201 терминал оборудован ими. Мы рекомендуем выучить C-b, C-f, C-n и C-p по трем
201 причинам. Во-первых, они работают на любых терминалах. Во-вторых, однажды 202 причинам. Во-первых, они работают на любых терминалах. Во-вторых, однажды
202 получив практику использования Emacs, вы поймете, что использовать 203 получив практику использования Emacs, вы поймете, что использовать
246 247
247 248
248 * УПРАВЛЕНИЕ КУРСОРОМ НА X-ТЕРМИНАЛЕ 249 * УПРАВЛЕНИЕ КУРСОРОМ НА X-ТЕРМИНАЛЕ
249 ------------------------------------ 250 ------------------------------------
250 251
251 Если у вас X-терминал, то для управления курсором, вам вероятно, покажется 252 Если у вас X-терминал, то для управления курсором, вам, вероятно, покажется
252 более легким использование клавиш курсора на цифровой клавиатуре 253 более легким использование клавиш курсора на цифровой клавиатуре
253 (справа). Стрелки влево, вправо, вверх и вниз передвигают курсор в 254 (справа). Стрелки влево, вправо, вверх и вниз передвигают курсор в
254 соответствующем направлении -- они работают точно также как C-b, C-f, C-p и 255 соответствующем направлении -- они работают точно также как C-b, C-f, C-p и
255 C-n, но легче в наборе и запоминании. Вы также можете использовать 256 C-n, но легче в наборе и запоминании. Вы также можете использовать
256 сочетания C-left и C-right для передвижения по словам, и C-up и C-down для 257 сочетания C-left и C-right для передвижения по словам, и C-up и C-down для
257 передвижения по блокам (т.е. параграфам, если вы редактируете текст). Если 258 передвижения по блокам (т.е. параграфам, если вы редактируете текст). Если
258 у вас есть кнопки помеченные HOME (или BEGIN) и/или END, то они будут 259 у вас есть кнопки помеченные HOME (или BEGIN) и/или END, то они будут
259 перемещать курсор в начало и конец строки, а C-home и C-end будут перемещать 260 перемещать курсор в начало и конец строки, а C-home и C-end будут перемещать
260 в начало и конец файла. Если на вашей клавиатуре есть кнопки PgUp и PgDn, 261 в начало и конец файла. Если на вашей клавиатуре есть кнопки PgUp и PgDn,
261 то вы можете использовать их для перемещения вверх и вниз постранично, 262 то вы можете использовать их для перемещения вверх и вниз постранично,
262 аналогично использованию M-v и C-v. 263 аналогично использованию M-v и C-v.
263 264
264 Все эти команды могут использовать цифровой аргумент, так, как об этом 265 Все эти команды могут использовать цифровой аргумент, так, как об этом
265 рассказано выше. Вы можете использовать ускоренный способ ввода этого 266 рассказано выше. Вы можете использовать ускоренный способ ввода этого
266 аргумента: просто нажмите CONTROL или META и наберите число. Например, для 267 аргумента: просто нажмите CONTROL или META и наберите число. Например, для
267 перемещения на 12 слов вправо, наберите C-1 C-2 C-right. Запомните, что так 268 перемещения на 12 слов вправо, наберите C-1 C-2 C-right. Запомните, что так
268 очень легко набирать, потому что вы не отпускаете кнопку CONTROL между 269 очень легко набирать, потому что вы не отпускаете кнопку CONTROL между
269 нажатиями. 270 нажатиями.
270 271
271 272
272 * ЕСЛИ EMACS ЗАВИС 273 * ЕСЛИ EMACS ЗАВИС
273 ------------------ 274 ------------------
274 275
275 Если Emacs перестал реагировать на ваши команды, то вы можете избежать этого, 276 Если Emacs перестал реагировать на ваши команды, то вы можете избежать этого,
276 просто нажав C-g. Вы можете использовать C-g, чтобы остановить выполнение 277 просто нажав C-g. Вы можете использовать C-g, чтобы остановить выполнение
277 команд, которые слишком долго выполняются. 278 команд, которые слишком долго выполняются.
278 279
279 Вы также можете использовать C-g для отмены набранного цифрового аргумента 280 Вы также можете использовать C-g для отмены набранного цифрового аргумента
280 или команды, которая начала выполняться, но которую вы не хотите завершать. 281 или команды, которая начала выполняться, но которую вы не хотите завершать.
281 282
307 308
308 * ОКНА 309 * ОКНА
309 ------ 310 ------
310 311
311 Emacs может отображать информацию в нескольких окнах, каждое из которых 312 Emacs может отображать информацию в нескольких окнах, каждое из которых
312 отображает свой текст. Позже мы объясним как работать с несколькими окнами. 313 отображает свой текст. Позже мы объясним как работать с несколькими окнами.
313 Прямо сейчас мы хотим объяснить вам как избавляться от лишних окон и 314 А сейчас мы хотим объяснить вам как избавляться от лишних окон и
314 вернуться к редактированию в одном окне. Это очень просто сделать: 315 вернуться к редактированию в одном окне. Это очень просто сделать:
315 316
316 C-x 1 Одно окно. (закрыть все другие окна). 317 C-x 1 Одно окно. (закрыть все другие окна).
317 318
318 Это CONTROL-x со следующей цифрой 1. C-x 1 развернет окно, которое содержит 319 Это CONTROL-x со следующей цифрой 1. C-x 1 развернет окно, которое содержит
319 курсор, так, чтобы оно заняло весь экран. При этом будут удалены все 320 курсор, так, чтобы оно заняло весь экран. При этом будут удалены все
320 остальные окна. 321 остальные окна.
321 322
322 >> Переместите курсор на эту строку и нажмите C-u 0 C-l. 323 >> Переместите курсор на эту строку и нажмите C-u 0 C-l.
323 324
335 336
336 337
337 * ВСТАВКА И УДАЛЕНИЕ 338 * ВСТАВКА И УДАЛЕНИЕ
338 -------------------- 339 --------------------
339 340
340 Если вы хотите вставить текст, то просто набирайте его. Символы, которые вы 341 Если вы хотите вставить текст, то просто набирайте его. Символы, которые вы
341 можете видеть, такие как A, 7, *, и пр. понимаются Emacs'ом как текст и 342 можете видеть, такие как A, 7, *, и пр. понимаются Emacs'ом как текст и
342 вставляются немедленно. Нажмите <Return> (клавиша перевода каретки), чтобы 343 вставляются немедленно. Нажмите <Return> (клавиша перевода каретки), чтобы
343 вставить символ новой строки. 344 вставить символ новой строки.
344 345
345 Вы можете удалить набранный символ, нажимая клавишу <Delback>. <Delback> -- 346 Вы можете удалить набранный символ, нажимая клавишу <Delback>. <Delback> --
346 это клавиша на клавиатуре, которую вы используете и вне Emacs для удаления 347 это клавиша на клавиатуре, которую вы используете и вне Emacs для удаления
347 последнего набранного символа. Обычно это большая клавиша, расположенная 348 последнего набранного символа. Обычно это большая клавиша, расположенная
348 на несколько строк выше клавиши <Return>; обычно она помечена как "Delete", 349 несколько выше клавиши <Return>; обычно она помечена как "Delete", "Del"
349 "Del" или "Backspace". 350 или "Backspace".
350 351
351 Если большая клавиша помечена как "Backspace", то это то, что вам нужно 352 Если большая клавиша помечена как "Backspace", то это то, что вам нужно
352 использовать тогда, когда вы будете читать про <Delback>. У вас также может 353 использовать тогда, когда вы будете читать про <Delback>. Если у вас к тому
353 быть клавиша, помеченная как "Delete", но она имеет другую функцию, отличную 354 же есть и клавиша, помеченная как "Delete", но она имеет другую функцию,
354 от <Delback>. 355 отличную от <Delback>.
355 356
356 В основном, <Delback> удаляет символ непосредственно перед текущей позицией 357 Вообще говоря, <Delback> удаляет символ непосредственно перед текущей
357 курсора. 358 позицией курсора.
358 359
359 >> Попробуйте выполнить это сейчас -- наберите несколько символов, а затем 360 >> Попробуйте выполнить это сейчас -- наберите несколько символов, а затем
360 удалите их нажимая <Delback>. Не волнуйтесь об изменениях этого файла -- 361 удалите их нажимая <Delback>. Не волнуйтесь об изменениях этого файла --
361 вы не изменяете главный учебник; это ваша личная копия учебника. 362 вы не изменяете главный учебник; это ваша личная копия учебника.
362 363
365 если вы используете оконную систему, то это будет значок в виде маленькой 366 если вы используете оконную систему, то это будет значок в виде маленькой
366 изогнутой стрелки) с правой границы показывает, что строка будет 367 изогнутой стрелки) с правой границы показывает, что строка будет
367 продолжаться с предыдущей строки. 368 продолжаться с предыдущей строки.
368 369
369 >> Вводите текст, пока он не достигнет правой границы, и продолжайте вставку 370 >> Вводите текст, пока он не достигнет правой границы, и продолжайте вставку
370 символов. Вы увидите, как появится символ продолжения строки. 371 символов. Вы увидите, как появится символ продолжения строки.
371 372
372 >> Используйте <Delback> для удаления текста до тех пор, пока строка не 373 >> Используйте <Delback> для удаления текста до тех пор, пока строка не
373 поместится в экран снова. Символ продолжения строки исчезнет с экрана. 374 поместится в экран снова. Символ продолжения строки исчезнет с экрана.
374 375
375 Символ новой строки можно удалять точно так же, как и любой другой символ. 376 Символ новой строки можно удалять точно так же, как и любой другой символ.
376 Удаление символа новой строки между двумя строками приведет к их склейке в 377 Удаление символа новой строки между двумя строками приведет к их склейке в
377 одну. Если полученная строка будет слишком длинной, чтобы вместиться в 378 одну. Если полученная строка будет слишком длинной, чтобы вместиться в
378 экран, то она будет отображена как строка с продолжением, как это было 379 экран, то она будет отображена как строка с продолжением, как это было
379 описано выше. 380 описано выше.
380 381
381 >> Переместите курсор в начало строки и нажмите <Delback>. Это соединит 382 >> Переместите курсор в начало строки и нажмите <Delback>. Это соединит
382 текущую строку с предыдущей. 383 текущую строку с предыдущей.
388 символы не являются исключением. Вы можете вставлять по несколько символов, 389 символы не являются исключением. Вы можете вставлять по несколько символов,
389 используя счетчики повторений. 390 используя счетчики повторений.
390 391
391 >> Попробуйте проверить это -- наберите C-u 8 * для вставки ********. 392 >> Попробуйте проверить это -- наберите C-u 8 * для вставки ********.
392 393
393 Теперь вы научились основам набора текста в Emacs и исправления ошибок. Вы 394 Теперь вы научились основам набора текста в Emacs и исправления ошибок. Вы
394 также можете удалять слова и строки. Здесь приведен список операций 395 также можете удалять слова и строки. Здесь приведен список операций
395 удаления: 396 удаления:
396 397
397 <Delback> удалить символ перед курсором 398 <Delback> удалить символ перед курсором
398 C-d удалить символ следующий за (над) курсором 399 C-d удалить символ следующий за (над) курсором
399 400
400 M-<Delback> убить слово, стоящее перед курсором 401 M-<Delback> убить слово, стоящее перед курсором
401 M-d убить слово, следующее за курсором 402 M-d убить слово, следующее за курсором
402 403
403 C-k убить все от курсора до конца строки 404 C-k убить все от курсора до конца строки
404 M-k убить все до конца предложения 405 M-k убить все до конца предложения
405 406
406 Заметьте, что <Delback> и C-d, вместе с M-<Delback> и M-d расширяют 407 Заметьте, что <Delback> и C-d, вместе с M-<Delback> и M-d расширяют
407 параллель, начатую C-f и M-f (да, <Delback> -- это не настоящий управляющий 408 параллель, начатую C-f и M-f (да, <Delback> -- это не настоящий управляющий
408 символ, но не нужно об этом волноваться). C-k и M-k, как и C-e и M-e, 409 символ, но не нужно об этом волноваться). C-k и M-k, как и C-e и M-e,
409 проводят параллель между строками и предложениями. 410 проводят параллель между строками и предложениями.
410 411
411 Вы можете убить любую часть буфера одним методом. Переместитесь на один 412 Вы можете убить любую часть буфера одним методом. Переместитесь на один
412 из концов выбранной области и нажмите C-@ или C-<SPC> (одно из этих 413 из концов выбранной области и нажмите C-@ или C-<SPC> (одно из этих
413 сочетаний). Здесь <SPC> обозначает клавишу пробела. Переместитесь на другой 414 сочетаний). Здесь <SPC> обозначает клавишу пробела. Переместитесь на другой
414 конец области и нажмите C-w. Эта операция убьет весь текст между двумя 415 конец области и нажмите C-w. Эта операция убьет весь текст между двумя
415 указанными позициями. 416 указанными позициями.
416 417
417 >> Переместите курсор к букве В в начале предыдущего параграфа. 418 >> Переместите курсор к букве В в начале предыдущего параграфа.
418 >> Наберите C-<SPC>. Emacs должен отобразить в нижней части экрана сообщение 419 >> Наберите C-<SPC>. Emacs должен отобразить в нижней части экрана сообщение
419 "Mark set". 420 "Mark set".
436 437
437 >> Нажмите C-k еще раз. Вы видите, что это действие убьет символ новой 438 >> Нажмите C-k еще раз. Вы видите, что это действие убьет символ новой
438 строки, который следует за этой строкой. 439 строки, который следует за этой строкой.
439 440
440 Заметьте, что первое выполнение C-k убивает содержимое строки, а второй 441 Заметьте, что первое выполнение C-k убивает содержимое строки, а второй
441 вызов C-k убивает саму строку и поднимает другие строки вверх. C-k 442 вызов C-k убивает саму строку и поднимает другие строки вверх. C-k
442 обрабатывает числовой аргумент специальным образом -- убивает заданное 443 обрабатывает числовой аргумент специальным образом -- убивает заданное
443 количество строк _И_ их содержимое. Это не просто повторение команды. C-u 2 444 количество строк _И_ их содержимое. Это не просто повторение команды. C-u 2
444 C-k удалит две строки, а также завершающие их символы новой строки; 445 C-k удалит две строки, а также завершающие их символы новой строки;
445 двухразовое выполнение C-k не сделает этого. 446 двухразовое выполнение C-k не сделает этого.
446 447
447 Возврат убитого ранее текста называется "восстановление (yanking)". (Думайте 448 Возврат убитого ранее текста называется "восстановление (yanking)". (Думайте
448 об этом, как о восстановлении или помещении назад некоторого взятого 449 об этом, как о восстановлении или помещении назад некоторого взятого
449 текста). Вы можете восстановить убитый текст в месте удаления или в 450 текста). Вы можете восстановить убитый текст в месте удаления или в
450 любой другой точке редактируемого текста или даже в другом файле. Вы 451 любой другой точке редактируемого текста или даже в другом файле. Вы
451 можете восстановить текст несколько раз и получить несколько копий данного 452 можете восстановить текст несколько раз и получить несколько копий данного
452 текста. 453 текста.
453 454
454 Для восстановления убитого текста используется сочетание клавиш C-y. Данная 455 Для восстановления убитого текста используется сочетание клавиш C-y. Данная
455 команда восстанавливает последний убитый текст в точке расположения курсора. 456 команда восстанавливает последний убитый текст в точке расположения курсора.
456 457
457 >> Попробуйте выполнить эту команду -- наберите C-y, чтобы вернуть текст 458 >> Попробуйте выполнить эту команду -- наберите C-y, чтобы вернуть текст
458 назад. 459 назад.
459 460
463 464
464 >> Попробуйте выполнить это сейчас -- нажмите C-k несколько раз. 465 >> Попробуйте выполнить это сейчас -- нажмите C-k несколько раз.
465 466
466 Теперь вернем убитый текст: 467 Теперь вернем убитый текст:
467 468
468 >> Нажмите C-y. Теперь переместите курсор на несколько строк вниз, и снова 469 >> Нажмите C-y. Теперь переместите курсор на несколько строк вниз, и снова
469 нажмите C-y. Сейчас вы видите, как можно скопировать некоторый текст. 470 нажмите C-y. Сейчас вы видите, как можно скопировать некоторый текст.
470 471
471 Что делать, если есть некоторый текст, который вы хотите вернуть назад, а 472 Что делать, если есть некоторый текст, который вы хотите вернуть назад, а
472 потом убить что-то еще? Одно нажатие C-y вернет только последний удаленный 473 потом убить что-то еще? Одно нажатие C-y вернет только последний удаленный
473 текст. Но предыдущий текст не будет потерян -- вы сможете его вернуть 474 текст. Но предыдущий текст не будет потерян -- вы сможете его вернуть
474 назад, используя команду M-y. После того как вы вернули последний 475 назад, используя команду M-y. После того как вы вернули последний
475 удаленный текст, нажмите M-y и замените этот восстановленный текст тем, 476 удаленный текст, нажмите M-y и замените этот восстановленный текст тем,
476 который был убит ранее. Нажимая M-y снова и снова, вы будете возвращать 477 который был убит ранее. Нажимая M-y снова и снова, вы будете возвращать
477 ранее убитые части текста. Когда вы достигнете искомого текста, то вам не 478 ранее убитые части текста. Когда вы достигнете искомого текста, то вам не
478 нужно делать ничего, чтобы сохранить его. Просто продолжайте работать, 479 нужно делать ничего, чтобы сохранить его. Просто продолжайте работать,
479 оставив восстановленный текст там, где он есть. 480 оставив восстановленный текст там, где он есть.
480 481
481 Нажимая M-y достаточное число раз, вы можете вернуться в начальную точку 482 Нажимая M-y достаточное число раз, вы можете вернуться в начальную точку
482 (наиболее раннее удаление). 483 (наиболее раннее удаление).
483 484
484 >> Убейте строку, переместите курсор и убейте еще одну строку. Затем 485 >> Убейте строку, переместите курсор и убейте еще одну строку. Затем
485 используйте C-y для восстановления второй убитой строки, а затем нажмите 486 используйте C-y для восстановления второй убитой строки, а затем нажмите
486 M-y, и она будет заменена первой убитой строкой. Нажмите M-y еще 487 M-y, и она будет заменена первой убитой строкой. Нажмите M-y еще
487 несколько раз, чтобы увидеть полученный результат. Продолжайте выполнять 488 несколько раз, чтобы увидеть полученный результат. Продолжайте выполнять
488 эту команду до тех пор, пока вторая убитая строка не будет восстановлена 489 эту команду до тех пор, пока вторая убитая строка не будет восстановлена
489 снова. Если вам хочется, то вы можете задавать положительные и 490 снова. Если вам хочется, то вы можете задавать положительные и
490 отрицательные аргументы для команды M-y. 491 отрицательные аргументы для команды M-y.
491 492
500 Обычно, C-x u отменяет изменения, сделанные одной командой; если повторить 501 Обычно, C-x u отменяет изменения, сделанные одной командой; если повторить
501 C-x u несколько раз подряд, то каждый раз будет отменяться еще одна команда. 502 C-x u несколько раз подряд, то каждый раз будет отменяться еще одна команда.
502 503
503 Но есть два исключения -- команды не изменяющие текст, не учитываются (сюда 504 Но есть два исключения -- команды не изменяющие текст, не учитываются (сюда
504 включаются команды перемещения курсора и прокрутки), и команды вставки 505 включаются команды перемещения курсора и прокрутки), и команды вставки
505 символов обрабатываются группами до 20 символов. (Это уменьшает число 506 символов собираются в группы до 20 символов. (Это уменьшает число
506 нажатий C-x u, которые вам нужно будет набрать для отмены ввода текста). 507 нажатий C-x u, которые вам нужно будет набрать для отмены ввода текста).
507 508
508 >> Убейте эту строку с помощью C-k, а затем наберите C-x u, и строка должна 509 >> Убейте эту строку с помощью C-k, а затем наберите C-x u, и строка должна
509 вернуться назад. 510 вернуться назад.
510 511
511 C-_ -- это еще команда отмены; она работает точно так же, как и C-x u, но 512 C-_ -- это еще команда отмены; она работает точно так же, как и C-x u, но
512 легче в использовании, если вам нужно выполнить ее несколько раз 513 легче в использовании, если вам нужно выполнить ее несколько раз
513 подряд. Неудобное положение C-_ на некоторых клавиатурах делает не очевидным 514 подряд. Неудобное положение C-_ на некоторых клавиатурах делает не очевидным
514 способ ее набора. Поэтому мы предлагаем использовать C-x u. На некоторых 515 способ ее набора. Поэтому мы предлагаем использовать C-x u. На некоторых
515 терминалах вы можете набирать C-_, нажимая / и удерживая клавишу CONTROL. 516 терминалах вы можете набирать C-_, нажимая / и удерживая клавишу CONTROL.
516 517
517 Числовой аргумент для C-_ или C-x u используется как счетчик повторений. 518 Числовой аргумент для C-_ или C-x u используется как счетчик повторений.
518 519
519 Вы можете отменить удаление текста точно так же, как и отмену убития текста. 520 Вы можете отменить удаление текста точно так же, как и отмену убития текста.
523 524
524 * ФАЙЛЫ 525 * ФАЙЛЫ
525 ------- 526 -------
526 527
527 Чтобы созданный текст можно было редактировать позже, вы должны поместить 528 Чтобы созданный текст можно было редактировать позже, вы должны поместить
528 его в файл. Иначе он исчезнет, когда вы покинете Emacs. Вы помещаете ваш 529 его в файл. Иначе он исчезнет, когда вы покинете Emacs. Вы помещаете ваш
529 текст в файл, "открывая" файл (Эту операцию также называют "посетить" файл). 530 текст в файл, "открывая" файл (Эту операцию также называют "посетить" файл).
530 531
531 Открыть файл означает посмотреть его содержимое с помощью Emacs. Во многих 532 Открыть файл означает посмотреть его содержимое с помощью Emacs. Во многих
532 случаях это происходит тогда, когда вы редактируете файл сами. Однако ваши 533 случаях это происходит тогда, когда вы редактируете файл сами. Однако ваши
533 изменения, сделанные с использованием Emacs, не будут зафиксированы, пока вы 534 изменения, сделанные с использованием Emacs, не будут зафиксированы, пока вы
534 не сохраните файл. Вы можете не оставлять частично измененный файл в 535 не сохраните файл. Вы можете не оставлять частично измененный файл в
535 системе, если вы не хотите его сохранять. Даже когда вы сохраняете файл, то 536 системе, если вы не хотите его сохранять. Даже когда вы сохраняете файл, то
536 Emacs оставляет оригинальный файл, но с другим именем, так что вы позже 537 Emacs оставляет оригинальный файл, но с другим именем, так что вы позже
537 можете отменить ваши изменения, вернувшись к предыдущей версии файла. 538 можете отменить ваши изменения, вернувшись к предыдущей версии файла.
538 539
539 Если вы посмотрите в нижнюю часть экрана, то вы увидите строку, которая 540 Если вы посмотрите в нижнюю часть экрана, то вы увидите строку, которая
540 начинается с тире, и ее начало выглядит примерно так "--:-- TUTORIAL.ru". Эта 541 начинается с тире, и начало которой выглядит примерно так "--:-- TUTORIAL.ru".
541 часть экрана всегда показывает имя открытого вами файла. Итак, сейчас вы 542 Эта часть экрана всегда показывает имя открытого вами файла. Итак, сейчас у
542 открыли файл с именем "TUTORIAL.ru", который является вашей персональной 543 вас открыт файл с именем "TUTORIAL.ru", который является вашей персональной
543 копией учебника Emacs. Для любого файла, который вы откроете, его имя будет 544 копией учебника Emacs. Для любого файла, который вы откроете, Emacs покажет
544 показано в этой строке. 545 его имя в этой строке.
545 546
546 Одной из вещей, которые вам нужно знать о команде открытия файла -- это то, 547 Одной из вещей, которые вам нужно знать о команде открытия файла -- это то,
547 что вы должны ввести имя файла, который нужно открыть. Такие команды мы 548 что вы должны ввести имя файла, который нужно открыть. Такие команды мы
548 называем командами, "читающими аргумент с терминала" (в нашем случае 549 называем командами, "читающими аргумент с терминала" (в нашем случае
549 аргументом является имя файла). После ввода команды 550 аргументом является имя файла). После ввода команды
550 551
551 C-x C-f Открыть (найти) файл 552 C-x C-f Открыть (найти) файл
552 553
553 Emacs попросит вас ввести имя файла. Имя файла набирается в нижней строке 554 Emacs попросит вас ввести имя файла. Имя файла набирается в нижней строке
554 экрана. Нижняя строка называется мини-буфером -- он специально используется 555 экрана. Нижняя строка называется мини-буфером -- он специально используется
555 для ввода небольшого количества данных. Для редактирования имени файла вы 556 для ввода небольшого количества данных. Для редактирования имени файла вы
556 можете использовать обычные команды редактирования Emacs. 557 можете использовать обычные команды редактирования Emacs.
557 558
558 Когда вы вводите имя файла (или любую другую информацию в мини-буфере), вы 559 Когда вы вводите имя файла (или любую другую информацию в мини-буфере), вы
559 можете отменить текущую команду нажав C-g. 560 можете отменить текущую команду нажав C-g.
560 561
570 редактировать. Когда вы закончите редактирование, то для того, чтобы 571 редактировать. Когда вы закончите редактирование, то для того, чтобы
571 сохранить изменения, наберите команду 572 сохранить изменения, наберите команду
572 573
573 C-x C-s Сохранить файл 574 C-x C-s Сохранить файл
574 575
575 Эта команда скопирует текст из Emacs в файл. В первый раз, когда вы это 576 Эта команда скопирует текст из Emacs в файл. В первый раз, когда вы это
576 сделаете, Emacs переименует оригинальный файл в файл с новым именем, чтобы 577 сделаете, Emacs переименует оригинальный файл в файл с новым именем, чтобы
577 не потерялось предыдущее содержимое файла. Новое имя получается добавлением 578 не потерялось предыдущее содержимое файла. Имя файла с предыдущим содержимым
578 символа "~" к оригинальному имени файла. 579 получается добавлением символа "~" к оригинальному имени файла.
579 580
580 Когда сохранение завершится, Emacs отобразит имя записанного файла. Вы 581 Когда сохранение завершится, Emacs отобразит имя записанного файла. Вы
581 должны сохранять изменения достаточно часто, чтобы не потерять внесенные 582 должны сохранять изменения достаточно часто, чтобы не потерять внесенные
582 изменения, если система вдруг зависнет. 583 изменения, если система вдруг зависнет.
583 584
584 >> Наберите C-x C-s, сохраните вашу копию учебника. В нижней строке экрана 585 >> Наберите C-x C-s, сохраните вашу копию учебника. В нижней строке экрана
585 должна появиться надпись "Wrote ...TUTORIAL.ru". 586 должна появиться надпись "Wrote ...TUTORIAL.ru".
586 587
587 ЗАМЕЧАНИЕ: На некоторых системах ввод C-x C-s заблокирует экран, так что вы 588 ЗАМЕЧАНИЕ: На некоторых системах ввод C-x C-s заблокирует экран, так что вы
588 не увидите последующего вывода Emacs`а. Такое поведение означает, что 589 не увидите последующего вывода Emacs`а. Такое поведение означает, что
589 операционная система имеет "особенность", именуемую "flow control", 590 операционная система имеет "особенность", именуемую "flow control",
590 перехватывающую сочетание C-s и не пропускающую этот символ к Emacs`у. Для 591 перехватывающую сочетание C-s и не пропускающую этот символ к Emacs'у. Для
591 снятия блокировки экрана нажмите C-q. Обратитесь к разделу "Spontaneous 592 снятия блокировки экрана нажмите C-q. Обратитесь к разделу "Spontaneous
592 Entry to Incremental Search" руководства Emacs чтобы узнать о том, как 593 Entry to Incremental Search" руководства Emacs чтобы узнать о том, как
593 бороться с этой "особенностью". 594 бороться с этой "особенностью".
594 595
595 Вы можете открыть существующий файл для просмотра или редактирования. Вы 596 Вы можете открыть существующий файл для просмотра или редактирования. Вы
596 также можете открыть файл, которого еще не существует. Другими словами -- 597 также можете открыть файл, который еще не существует. Таким образом вы
597 создать файл с помощью Emacs можно так: найти файл, создать новый, и начать 598 можете создать файл с помощью Emacs: откройте несуществующий файл (Emacs
598 вводить текст. Когда вы выполните команду сохранения файла, то Emacs создаст 599 покажет его пустым) и вводите в него текст. Когда вы выполните команду
599 настоящий файл с набранным вами текстом. Далее, как вы поняли, вы будете 600 сохранения файла в первый раз, Emacs создаст настоящий файл с набранным
600 редактировать уже существующий файл. 601 вами текстом. Далее, как вы поняли, вы будете редактировать уже существующий
602 файл.
601 603
602 604
603 * БУФЕРА 605 * БУФЕРА
604 -------- 606 --------
605 607
606 Если вы открываете второй файл, используя команду C-x C-f, то первый файл 608 Если вы откроете еще один файл, используя команду C-x C-f, то предыдущий файл
607 остается внутри Emacs. Вы можете переключиться назад, открыв его снова с 609 остается внутри Emacs'а. Вы можете переключиться назад к предыдущему файлу,
608 помощью C-x C-f. Таким образом вы можете загрузить несколько файлов в Emacs. 610 открыв его снова с помощью C-x C-f. Таким образом вы можете загрузить немало
611 файлов в Emacs.
609 612
610 >> Создайте файл с именем "foo", набрав C-x C-f foo <Return>. 613 >> Создайте файл с именем "foo", набрав C-x C-f foo <Return>.
611 Вставьте какой-нибудь текст, измените его, и сохраните файл "foo", 614 Вставьте какой-нибудь текст, измените его, и сохраните файл "foo",
612 набрав C-x C-s. 615 набрав C-x C-s.
613 Наконец, наберите C-x C-f TUTORIAL.ru <Return> для того, чтобы вернуться 616 Наконец, наберите C-x C-f TUTORIAL.ru <Return> для того, чтобы вернуться
614 назад к учебнику. 617 назад к учебнику.
615 618
616 Emacs хранит текст каждого файла внутри в объекте, называемом "буфер" 619 Emacs хранит текст каждого файла в объекте, называемом "буфер" ("buffer").
617 ("buffer"). Открытие файла создает новый буфер внутри Emacs. Чтобы увидеть 620 Открытие файла создает новый буфер внутри Emacs. Чтобы увидеть список
618 список буферов, созданных в текущем сеансе Emacs, наберите 621 буферов, созданных в текущем сеансе Emacs, наберите
619 622
620 C-x C-b Список буферов 623 C-x C-b Список буферов
621 624
622 >> Попробуйте выполнить C-x C-b прямо сейчас. 625 >> Попробуйте выполнить C-x C-b прямо сейчас.
623 626
624 Мы видим, что каждый буфер имеет имя и может иметь связанное с ним имя 627 Мы видим, что каждый буфер имеет имя и может иметь связанное с ним имя
625 файла, содержимое которого хранится в данном буфере. ЛЮБОЙ текст, который 628 файла, содержимое которого хранится в данном буфере. ЛЮБОЙ текст, который
626 вы видите в окне Emacs, всегда является частью какого-либо буфера. 629 вы видите в окне Emacs'а, всегда является частью какого-либо буфера.
627 630
628 >> Наберите C-x 1, чтобы избавиться от списка буферов. 631 >> Наберите C-x 1, чтобы избавиться от списка буферов.
629 632
630 Когда у вас есть несколько буферов, только один из них является "текущим" в 633 Когда у вас есть несколько буферов, только один из них является "текущим" в
631 конкретный момент времени. Это тот буфер, который вы изменяете. Если вы 634 конкретный момент времени. Это тот буфер, который вы редактируете. Если вы
632 хотите изменить данные в другом буфере, то вы должны "переключиться" в него. 635 хотите редактировать другой буфер, то вы должны "переключиться" к нему.
633 Если вы хотите переключиться в буфер, связанный с файлом, то вы можете 636 Если вы хотите переключиться к буферу, связанному с файлом, то вы можете
634 открыть этот файл снова с помощью C-x C-f. Но есть более простой способ -- 637 открыть этот файл снова с помощью C-x C-f. Но есть более простой способ --
635 использовать команду C-x b. В качестве аргумента для данной команды вы 638 использовать команду C-x b. В качестве аргумента для данной команды вы
636 должны указать имя буфера. 639 должны указать имя буфера.
637 640
638 >> Наберите C-x b foo <Return> для переключения в буфер "foo", который 641 >> Наберите C-x b foo <Return> для переключения в буфер "foo", который
639 хранит текст файла "foo". Затем наберите C-x b TUTORIAL <Return> для 642 хранит текст файла "foo". Затем наберите C-x b TUTORIAL.ru <Return>
640 возвращения в буфер с данным учебником. 643 для возвращения в буфер с данным учебником.
641 644
642 Чаще всего имя буфера совпадает с именем файла (только без имени каталогов). 645 Чаще всего имя буфера совпадает с именем файла (только без имен каталогов).
643 Однако это не всегда является правдой. Список буферов, который вы создаете 646 Но иногда это не так. Список буферов, который вы создаете с помощью команды
644 с помощью команды C-x C-b, всегда показывает вам имена всех буферов. 647 C-x C-b, всегда показывает вам точные имена всех буферов.
645 648
646 ЛЮБОЙ текст, который вы видите в окне Emacs, всегда является частью 649 ЛЮБОЙ текст, который вы видите в окне Emacs, всегда является частью
647 какого-либо буфера. Некоторые буфера не соответствуют файлам. Например, 650 какого-либо буфера. Некоторые буфера не соответствуют файлам. Например,
648 буфер с именем "*Buffer List*" не связан ни с каким файлом. Это буфер, 651 буфер с именем "*Buffer List*" не связан ни с каким файлом. Этот буфер
649 который содержит список буферов, который вы создали, используя C-x C-b. 652 создается коммандой C-x C-b и содержит список всех буферов. Буфер по имени
650 Буфер с именем "*Messages*" также не связан ни с каким файлом; он содержит 653 "*Messages*" также не связан ни с каким файлом; он содержит сообщения,
651 сообщения, которые отображаются в самой нижней строке окна Emacs в течение 654 которые отображаются в самой нижней строке окна Emacs в течение
652 текущей сессии работы с редактором. 655 текущего сеанса работы с редактором.
653 656
654 >> Наберите C-x b *Messages* <Return> для просмотра содержимого буфера 657 >> Наберите C-x b *Messages* <Return> для просмотра содержимого буфера
655 сообщений. Затем наберите C-x b TUTORIAL <Return> для возврата в данный 658 сообщений. Затем наберите C-x b TUTORIAL.ru <Return> для возврата в
656 учебник. 659 данный учебник.
657 660
658 Если вы изменяете текст одного файла, а затем открываете другой, то текст в 661 Если вы изменяете текст одного файла, а затем открываете другой, то текст в
659 первом буфере остается не сохраненным. Изменения останутся внутри Emacs, в 662 первом буфере остается не сохраненным. Изменения останутся внутри Emacs, в
660 буфере, связанном с файлом. Создание или редактирование следующего буфера не 663 буфере, связанном с файлом. Создание или редактирование следующего буфера не
661 сказывается на первом буфере. Это очень удобно, но имейте в виду, что вам 664 сказывается на первом буфере. Это очень удобно, но имейте в виду, что вам
662 нужно иметь способ сохранить первый файловый буфер. Было бы неприятно 665 нужно иметь способ сохранить первый файловый буфер. Было бы неприятно
663 каждый раз возвращаться назад используя C-x C-f и потом использовать C-x C-s 666 каждый раз возвращаться назад используя C-x C-f и потом использовать C-x C-s
664 для сохранения данных. Поэтому существует команда 667 для сохранения данных. Поэтому существует команда
665 668
666 C-x s Сохранить некоторые буфера. (Save some buffers) 669 C-x s Сохранить некоторые буфера. (Save some buffers)
667 670
668 C-x s запрашивает у вас подтверждение о сохранении для каждого буфера, 671 C-x s запрашивает у вас подтверждение о сохранении для каждого буфера,
669 который содержит несохраненные изменения. Для каждого такого буфера у вас 672 который содержит несохраненные изменения. Для каждого такого буфера у вас
670 запросят: сохранять или не сохранять изменения. 673 запросят: сохранять или не сохранять изменения.
671 674
672 >> Вставьте строку текста, потом наберите C-x s. 675 >> Вставьте строку текста, потом наберите C-x s.
673 У вас должны спросить, сохранять ли буфер с именем TUTORIAL.ru. Ответьте 676 Должен появиться запрос: сохранять ли буфер с именем TUTORIAL.ru.
674 на вопрос утвердительно, набрав "y". 677 Ответьте на запрос утвердительно нажатием клавишы "y".
675 678
676 679
677 * РАСШИРЕНИЕ НАБОРА КОМАНД 680 * РАСШИРЕНИЕ НАБОРА КОМАНД
678 -------------------------- 681 --------------------------
679 682
680 У Emacs очень много команд, и они не могут быть назначены на все control- и 683 У Emacs очень много команд, и они не могут быть назначены на все control- и
681 meta- символы. Emacs обходит это, используя X-команду (eXtend). Есть две 684 meta- символы. Emacs решает эту проблему, используя X-команду (eXtend,
682 возможности: 685 расширить). Есть два варианта этого расширения:
683 686
684 C-x Расширение с помощью ввода префикса. За ним следует один символ. 687 C-x Расширение с помощью ввода префикса. За ним следует один символ.
685 M-x Расширение набора команд с помощью их наименования. За ним следует имя 688 M-x Расширение набора команд с помощью их наименования. За ним
686 команды. 689 следует имя команды.
687 690
688 Это полезные команды, но они используются менее часто, чем те команды, 691 Это полезные команды, но они используются менее часто, чем те команды,
689 которые мы изучили. Вы уже видели некоторые из них: команды работы с файлами 692 которые мы уже изучили. Вы уже видели некоторые из расширенных комманд:
690 C-x C-f -- открыть файл, и C-x C-s -- сохранить файл. Другой пример -- 693 команды работы с файлами C-x C-f -- открыть файл, и C-x C-s -- сохранить
691 команда завершения работы с Emacs -- C-x C-c. (Не волнуйтесь о том, что вы 694 файл. Другой пример -- команда завершения работы с Emacs'ом -- C-x C-c.
692 потеряете сделанные изменения, C-x C-c предлагает сохранить изменения перед 695 (Не волнуйтесь о том, что вы потеряете сделанные изменения, C-x C-c
693 удалением буфера Emacs). 696 предлагает сохранить изменения перед выходом из Emacs'а.)
697
698 Если вы работаете на графическом дисплее, который способен показывать
699 несколько программ одновременно, вы можете переключится от Emacs'а к другой
700 программе используя мышку или соответствующее команды установленного у вас
701 менеджера окон. Но когда вы работаете на текстовом терминале, который
702 способен отобразить только одну программу, то для переключения к другой
703 программе вам понадобится "приостановить" Emacs.
694 704
695 C-z -- это команда *временного* выхода из Emacs. Вы можете вернуться в ту же 705 C-z -- это команда *временного* выхода из Emacs. Вы можете вернуться в ту же
696 сессию Emacs позже. 706 сессию Emacs позже. Когда Emacs запускается на текстовом терминале, команда
697 707 C-z "приостанавливает" ("suspends") Emacs, т.е. она возвращает вас в командный
698 На системах, которые реализуют эту возможность, команда C-z 708 процессор (shell), но не закрывают Emacs. В большинстве командных процессоров
699 "приостанавливает" ("suspends") Emacs; возвращает в командный процессор 709 вы можете вернуться в Emacs, используя команду `fg', `%emacs' или `exit'.
700 (shell), но не закрывают Emacs. В большинстве командных процессоров вы
701 можете вернуться в Emacs, используя команду `fg' или `%emacs'.
702
703 В системах, не поддерживающих приостановку процессов, C-z создает новый
704 командный процессор (subshell), запущенный из-под Emacs, чтобы дать вам
705 возможность выполнить другую программу, и затем вернуться в Emacs (это не
706 настоящий выход из Emacs). В таких система для возврата в Emacs вам нужно
707 использовать команду `exit'.
708 710
709 Чтобы покинуть Emacs используйте команду C-x C-c. Обычно это нужно тогда, 711 Чтобы покинуть Emacs используйте команду C-x C-c. Обычно это нужно тогда,
710 когда вы хотите закончить сеанс работы с компьютером. Это сочетание также 712 когда вы хотите закончить сеанс работы с компьютером. Это сочетание также
711 используется, чтобы выйти из Emacs, вызванного из почтовой программы или 713 используется, чтобы выйти из Emacs, вызванного из почтовой программы или
712 другой утилиты, которая может не знать, как справиться с приостановленным 714 другой утилиты, которая может не знать, как справиться с приостановленным
713 Emacs. Обычно, если вы не собираетесь выходить из системы, то лучше 715 Emacs. Обычно, если вы не собираетесь выходить из системы, то лучше
714 приостановить Emacs, используя C-z, вместо того, чтобы покидать его совсем. 716 приостановить Emacs, используя C-z, вместо того, чтобы покидать его совсем.
715 717
716 Существует очень много команд, использующих префикс C-x. Вы уже изучили 718 Существует очень много команд, использующих префикс C-x. Вы уже изучили
717 следующие команды: 719 следующие команды:
718 720
719 C-x C-f Открыть файл 721 C-x C-f Открыть файл
720 C-x C-s Сохранить файл 722 C-x C-s Сохранить файл
721 C-x s Сохранить некоторые файлы 723 C-x s Сохранить некоторые файлы
722 C-x C-b Список буферов 724 C-x C-b Список буферов
723 C-x b Переключиться в буфер 725 C-x b Переключиться в буфер
724 C-x C-c Выход из Emacs 726 C-x C-c Выход из Emacs
725 C-x 1 Удаляет все окна кроме одного 727 C-x 1 Удалить все окна, кроме текущего
726 C-x u Отмена 728 C-x u Отмена команд
727 729
728 Именованные команды -- это команды, которые используются гораздо реже, или 730 Поименованные команды -- это команды, которые используются гораздо реже,
729 используются только в определенных режимах. В качестве примера можно 731 или используются только в определенных режимах. В качестве примера можно
730 привести команду замены строки, которая заменяет одну строку на другую во 732 привести команду замены строки, которая заменяет одну строку на другую во
731 всем тексте. Когда вы наберете M-x, Emacs предложит вам ввести имя команды; 733 всем тексте. Когда вы наберете M-x, Emacs предложит вам ввести имя команды;
732 в нашем случае это команда "replace-string". Наберите лишь "repl s<TAB>", 734 в нашем случае это команда "replace-string". Наберите лишь "repl s<TAB>",
733 и Emacs дополнит имя. (<TAB> -- это клавиша табуляции, обычно находящаяся 735 и Emacs дополнит имя. (<TAB> -- это клавиша табуляции, обычно находящаяся
734 выше клавиш CapsLock или Shift в левой части клавиатуры). Завершите имя 736 над клавишами CapsLock или Shift в левой части клавиатуры.) Завершите имя
735 нажатием <Return>. 737 нажатием <Return>.
736 738
737 Команда замены строки (replace-string) требует два аргумента -- строку, 739 Команда замены строки (replace-string) требует два аргумента -- строку,
738 которая будет заменена, и строку, на которую нужно заменить. Вы должны 740 которая будет заменена, и строку, на которую нужно заменить. Вы должны
739 завершать каждый аргумент вводом <Return>. 741 завершать каждый аргумент вводом <Return>.
740 742
741 >> Переместите курсор на две пустые строки ниже этой. 743 >> Переместите курсор к пустой строке на две строчки ниже этой.
742 Наберите M-x repl s<Return>файл<Return>файлы<Return>. 744 Наберите M-x repl s<Return>файл<Return>файлы<Return>.
743 745
744 Заметьте, как эта строка изменится: вы замените слово ф-а-й-л 746 Заметьте, как эта строчка изменится: вы замените слово ф-а-й-л
745 словом "файлы" везде, где оно встретится, ниже позиции курсора. 747 словом "файлы" везде, где оно встретится, ниже позиции курсора.
746 748
747 749
748 * АВТОМАТИЧЕСКОЕ СОХРАНЕНИЕ 750 * АВТОМАТИЧЕСКОЕ СОХРАНЕНИЕ
749 --------------------------- 751 ---------------------------
750 752
751 Когда вы изменяете файл, но не сохраняете его, то в случае краха системы вы 753 Когда вы изменяете файл, но не сохраняете его, то в случае зависания системы
752 можете потерять информацию. Чтобы защитить вас от этого, Emacs периодически 754 вы можете потерять информацию. Чтобы защитить вас от этого, Emacs периодически
753 сохраняет каждый файл, который вы редактируете. Автоматическое сохранение 755 сохраняет каждый файл, который вы редактируете. Автоматическое сохранение
754 происходит в файл, имя которого такое же, но начинается и заканчивается 756 происходит в файл, имя получается из имени редактируемого файла добавлением
755 символом "#"; например, если ваш файл называется "hello.c", то автоматически 757 символа "#" в начале и в конце; например, если ваш файл называется "hello.c",
756 сохраненный файл будет называться "#hello.c#". Когда вы сохраните файл 758 то автоматически сохраненный файл будет называться "#hello.c#". Когда вы
757 обычным способом, Emacs удалит автоматически сохраненный файл. 759 сохраните файл обычным способом, Emacs удаляет автоматически сохраненный файл.
758 760
759 Если система зависла, то вы можете восстановить ваши изменения, которые были 761 Если система зависла, то вы можете восстановить ваши изменения, которые были
760 сохранены автоматически, путем открытия нужного файла (файла, который вы 762 сохранены автоматически, путем открытия нужного файла (файла, который вы
761 редактировали, не сохраненного), и затем набрав M-x recover-file<return>. 763 редактировали, но не сохранили), и затем набрав M-x recover-file<Return>.
762 Когда у вас запросят подтверждение, наберите yes<return>, чтобы 764 Когда у вас запросят подтверждение, наберите yes<Return>, чтобы
763 восстановить автоматически сохраненные данные. 765 восстановить автоматически сохраненные данные.
764 766
765 767
766 * ОБЛАСТЬ ЭХО (ECHO AREA) 768 * ОБЛАСТЬ ЭХА (ECHO AREA)
767 ------------------------- 769 -------------------------
768 770
769 Если Emacs видит, что вы медленно набираете команды из нескольких символов, 771 Если Emacs видит, что вы медленно набираете команды из нескольких символов,
770 то он показывает их вам внизу экрана, в области называемой "область эхо". 772 то он показывает их вам внизу экрана, в области называемой "область эха".
771 Область эхо -- это самая нижняя строка экрана. 773 Область эха -- это самая нижняя строка окна Emacs.
772 774
773 775
774 * СТРОКА СОСТОЯНИЯ 776 * СТРОКА СОСТОЯНИЯ
775 ------------------ 777 ------------------
776 778
777 Строка сразу над областью эхо называется "строкой состояния". Выглядит эта 779 Строка сразу над областью эха называется "строкой состояния". Выглядит эта
778 строка примерно так: 780 строка примерно так:
779 781
780 --:** TUTORIAL.ru 63% L749 (Fundamental)----------------------- 782 --:** TUTORIAL.ru 63% L749 (Fundamental)-----------------------
781 783
782 Эта строка сообщает полезную информацию о состоянии Emacs и текста, который 784 Эта строка сообщает полезную информацию о состоянии Emacs и текста, который
783 вы редактируете. 785 вы редактируете.
784 786
785 Вы уже знаете, что означает имя файла -- это файл, который вы открыли. NN% 787 Вы уже знаете, что означает имя файла -- это файл, который вы открыли. NN%
786 показывает текущую позицию курсора в тексте; это означает что NN процентов 788 показывает вашу текущую позицию в тексте; это означает что NN процентов
787 текста находятся выше, чем начало экрана. Если первая строка всего текста 789 текста находятся выше начала окна. Если показано начало текста, вы увидите
788 находится в первой строке экрана, вы там увидите "Top" вместо "0%". Если на 790 "Top" вместо "0%". Если показан конец текста, то будет отображено "Bot".
789 экране отображается последняя строка, то будет отображено "Bot". Если текст 791 Если текст настолько мал, что показан весь, то строка состояния сообщит
790 настолько мал, что весь вмещается в экран, то строка состояния сообщит
791 "All". 792 "All".
792 793
793 Буква L и цифры показывают позицию другим способом -- они показывают номер 794 Буква L и цифры показывают позицию другим способом -- они показывают номер
794 строки в которой находится курсор. 795 строки в которой находится курсор.
795 796
796 Звездочки в начале строки означают, что вы изменяли текст. При открытии или 797 Звездочки в начале строки означают, что вы изменяли текст. При открытии или
797 сохранении файла эта часть строки будет содержать не звездочки, а тире. 798 сохранении файла эта часть строки будет содержать не звездочки, а тире.
798 799
799 Часть строки статуса внутри скобок сообщает вам о режиме редактирования, 800 Часть строки состояния внутри скобок сообщает вам о режиме редактирования,
800 который вы сейчас используете. Стандартный режим -- Fundamental, он 801 который вы сейчас используете. Стандартный, или базовый, режим -- Fundamental,
801 используется и данном документе. Это пример "основного режима" ("major 802 он используется и в данном учебнике. Это пример "основного режима" ("major
802 mode"). 803 mode").
803 804
804 Emacs имеет много различных основных режимов. Некоторые из режимов 805 Emacs имеет много различных основных режимов. Некоторые из режимов
805 используются для редактирования текста на различных языках и/или различных 806 используются для редактирования текста на различных языках и/или различных
806 видов текста, такие как Lisp-режим, Text-режим и пр. В каждый момент 807 видов текста, такие как Lisp-режим, Text-режим и пр. В каждый момент
807 времени действует только один основной режим, и его название вы можете найти 808 времени действует только один основной режим, и его название вы можете найти
808 в скобках -- там, где сейчас находится слово "Fundamental" (базовый). 809 в скобках -- там, где сейчас находится слово "Fundamental" (базовый).
809 810
810 Каждый основной режим заставляет некоторые команды вести себя немного 811 Каждый основной режим заставляет некоторые команды вести себя немного
811 по-другому. Например, это команды создания комментариев в программе, и 812 по-другому. Например, это команды создания комментариев в программе, и
812 поскольку в каждом языке программирования комментарии записываются 813 поскольку в каждом языке программирования комментарии записываются
813 по-своему, то и каждый основной режим вставляет их по-разному. Каждый 814 по-своему, то и каждый основной режим вставляет их по-разному. Каждый
814 основной режим имеет именованную команду, которая включает его. Например, 815 основной режим имеет именованную команду, которая включает его. Например,
815 M-x fundamental-mode -- это команда, которая включает базовый (Fundamental) 816 M-x fundamental-mode -- это команда, которая включает базовый (Fundamental)
816 режим. 817 режим.
817 818
818 Если вы редактируете текст на естественном языке, например, как этот файл, 819 Если вы редактируете текст на естественном языке, например, как этот файл,
819 то вы, вероятно должны переключиться в режим Text. 820 то вы, вероятно должны переключиться в режим Text.
820 821
821 >> Наберите M-x text mode<Return>. 822 >> Наберите M-x text mode<Return>.
822 823
823 Не волнуйтесь, ни одна из выученных вами команд Emacs не изменилась. Но вы 824 Не волнуйтесь, ни одна из выученных вами команд Emacs не изменилась. Но вы
824 можете заметить, что M-f и M-b теперь рассматривают апострофы как часть 825 можете заметить, что M-f и M-b теперь рассматривают апострофы как часть
825 слова. Ранее, в базовом режиме (Fundamental mode), M-f и M-b понимали 826 слова. Ранее, в базовом режиме (Fundamental mode), M-f и M-b понимали
826 апострофы как разделители слов. 827 апострофы как разделители слов.
827 828
828 Основной режим обычно делает небольшие изменения, такие как: большинство 829 Как правило, основной режим производит подобные незначительные изменения:
829 команд делают "одну и ту же работу" в каждом из режимов, но их действие 830 большинство команд "работает" одинаково в каждом из режимов, но их действие
830 отличается какой-нибудь мелочью. 831 отличается какой-нибудь мелочью.
831 832
832 Для просмотра документации о текущем основном режиме, нажмите C-h m. 833 Для просмотра документации о текущем основном режиме, нажмите C-h m.
833 834
834 >> Используйте C-u C-v один раз или более, чтобы расположить эту строку 835 >> Используйте C-u C-v один раз или более, чтобы расположить эту строку
835 ближе к верху экрана. 836 ближе к верху экрана.
836 >> Наберите C-h m, чтобы посмотреть отличия Text-режима от базового. 837 >> Наберите C-h m, чтобы посмотреть отличия Text-режима от базового.
837 >> Наберите C-x 1, чтобы убрать документацию с глаз долой :) 838 >> Наберите C-x 1, чтобы убрать документацию с глаз долой :)
838 839
839 Основной режим называется основным потому, что также существуют 840 Основной режим называется основным потому, что также существуют
840 дополнительные (minor) режимы. Дополнительные режимы не являются 841 дополнительные, или второстепенные, (minor) режимы. Дополнительные режимы
841 альтернативами основным, они только немного изменяют их поведение. Каждый 842 не являются альтернативами основным, они только немного изменяют их
842 дополнительный режим включается/выключается независимо от других 843 поведение. Каждый дополнительный режим включается/выключается независимо
843 дополнительных режимов и независимо от вашего основного режима. Вы можете 844 от других дополнительных режимов и независимо от вашего основного режима.
844 использовать основной режим без дополнительных, или с любой их комбинацией. 845 Вы можете использовать основной режим без дополнительных, или с любой
846 комбинацией нескольких дополнительных режимов.
845 847
846 Один из дополнительных режимов очень полезен, особенно для редактирования 848 Один из дополнительных режимов очень полезен, особенно для редактирования
847 текста -- это режим автозаполнения (Auto Fill mode). Когда этот режим 849 текста -- это режим автозаполнения (Auto Fill mode). Когда этот режим
848 включен, то Emacs разрывает строки между словами автоматически в тех 850 включен, то Emacs автоматически разрывает строку между словами в тех
849 случаях, когда вы вставляете текст и делаете строки слишком длинными. 851 случаях, когда вставленный текст делает строку слишком длинной.
850 852
851 Вы можете включить режим автозаполнения, набрав M-x auto fill mode<Return>. 853 Вы можете включить режим автозаполнения, набрав M-x auto fill mode<Return>.
852 Когда этот режим включен, его можно выключить с помощью той же команды -- 854 Когда этот режим включен, его можно выключить с помощью той же команды --
853 M-x auto fill mode<Return>. Если режим включен, то такая команда его 855 M-x auto fill mode<Return>. Если режим включен, то такая команда его
854 выключит, если выключен, то включит. Мы называем это командой "переключения 856 выключит, если выключен, то включит. Мы называем это командой "переключения
855 режима". 857 режима".
856 858
857 >> Наберите M-x auto fill mode<Return>. Затем вводите строку из слов "фыва " 859 >> Наберите M-x auto fill mode<Return>. Затем вводите строку из слов "фыва "
858 пока не увидите, как она разделится на две строки. Вы должны помещать 860 пока не увидите, как она разделится на две строки. Эти пробелы между
859 пробелы между словами, потому что режим автозаполнения разбивает строки 861 словами необходимы, потому что режим автозаполнения разбивает строки
860 только по пробелам. 862 только по пробелам.
861 863
862 Граница разбиения обычно равна 70-ти символам, но вы можете изменить ее 864 Граница разбиения обычно равна 70-ти символам, но вы можете изменить ее
863 используя команду C-x f. Вы должны задать границу в виде числового 865 используя команду C-x f. Вы должны задать границу в виде числового
864 аргумента для этой команды. 866 аргумента для этой команды.
865 867
866 >> Введите C-x f с аргументом 20 (C-u 2 0 C-x f). Затем введите какой-нибудь 868 >> Введите C-x f с аргументом 20 (C-u 2 0 C-x f). Затем введите какой-нибудь
867 текст и посмотрите как Emacs заполняет строки по 20 символов в каждой. 869 текст и посмотрите как Emacs заполняет строки по 20 символов в каждой.
868 Верните значение границы равное 70 назад, используя команду C-x f. 870 Верните значение границы равное 70 назад, используя команду C-x f.
869 871
870 Если вы сделали изменения в середине параграфа, то автозаполнение не 872 Если вы сделали изменения в середине параграфа, то автозаполнение не
871 переформатирует текст автоматически. Чтобы переформатировать параграф, 873 переформатирует текст автоматически. Чтобы переформатировать параграф,
872 наберите M-q (META-q), когда курсор находится внутри параграфа. 874 наберите M-q (META-q), когда курсор находится внутри параграфа.
873 875
874 >> Переместите курсор в предыдущий параграф, и нажмите M-q. 876 >> Переместите курсор в предыдущий параграф, и нажмите M-q.
875 877
876 878
877 * ПОИСК 879 * ПОИСК
878 ------- 880 -------
879 881
880 Emacs умеет искать строки (непрерывные группы символов или слова) вперед или 882 Emacs умеет искать строки (непрерывные группы символов или слова) вперед или
881 назад по тексту. Поиск строки -- это команда перемещения курсора; она 883 назад по тексту. Поиск строки -- это команда перемещения курсора; она
882 перемещает курсор в следующую точку, где найдена искомая строка. 884 перемещает курсор в следующую точку, где найдена искомая строка.
883 885
884 Команда поиска Emacs отличается от аналогичных команд большинства других 886 Команда поиска Emacs отличается от аналогичных команд большинства других
885 редакторов тем, что она инкрементальная. Это означает, что поиск происходит 887 редакторов тем, что она инкрементальная. Это означает, что поиск происходит
886 по мере того, как вы набираете искомую строку. 888 по мере того, как вы набираете искомую строку.
887 889
888 Команда, начинающая поиск вперед -- C-s, а C-r ищет назад. ПОДОЖДИТЕ! Не 890 Команда, начинающая поиск вперед -- C-s, а C-r ищет назад. ПОДОЖДИТЕ! Не
889 нужно пробовать прямо сейчас. 891 нужно пробовать прямо сейчас.
890 892
891 Когда вы нажмете C-s, вы увидите строку "I-search", появившуюся в области эхо. 893 Когда вы нажмете C-s, вы увидите строку "I-search", появившуюся в области эха.
892 Вам сообщается, что Emacs ждет ввода слова, которое вы хотите найти. 894 Вам сообщается, что Emacs ждет ввода слова, которое вы хотите найти.
893 <Return> завершает поиск. 895 <Return> завершает поиск.
894 896
895 >> Теперь нажмите C-s для начала поиска. Медленно, по одной букве, набирайте 897 >> Теперь нажмите C-s для начала поиска. Медленно, по одной букве, набирайте
896 слово 'курсор', останавливаясь после каждой введенной буквы и замечая, что 898 слово 'курсор', останавливаясь после каждой введенной буквы и замечая, что
900 >> Теперь нажмите <Delback> четыре раза и проследите за перемещениями курсора. 902 >> Теперь нажмите <Delback> четыре раза и проследите за перемещениями курсора.
901 >> Нажмите <Return> для завершения поиска. 903 >> Нажмите <Return> для завершения поиска.
902 904
903 Вы заметили, что происходило? Emacs в режиме инкрементального поиска пытался 905 Вы заметили, что происходило? Emacs в режиме инкрементального поиска пытался
904 переходить к строкам, совпадающим с набираемой вами строкой, подсвечивая их. 906 переходить к строкам, совпадающим с набираемой вами строкой, подсвечивая их.
905 Чтобы перейти к следующему вхождения слова 'курсор', просто нажмите C-s 907 Чтобы перейти к следующему вхождению слова 'курсор', просто нажмите C-s
906 снова. Если больше нет вхождений, то Emacs издаст звуковой сигнал и 908 снова. Если больше нет вхождений, то Emacs издаст звуковой сигнал и
907 сообщит, что ваш поиск не удался ("failing"), C-g также может отменить 909 сообщит, что ваш поиск не удался ("failing"), C-g также может отменить
908 поиск. 910 поиск.
909 911
910 ЗАМЕЧАНИЕ: На некоторых системах ввод C-x C-s заблокирует экран, так что вы 912 ЗАМЕЧАНИЕ: На некоторых системах ввод C-x C-s заблокирует экран, так что вы
911 не увидите последующего вывода Emacs`а. Такое поведение означает, что 913 не увидите последующего вывода Emacs'а. Такое поведение означает, что
912 операционная система имеет "особенность", именуемую "flow control", 914 операционная система имеет "особенность", именуемую "flow control",
913 перехватывающую сочетание C-s и не пропускающую этот символ к Emacs`у. Для 915 перехватывающую сочетание C-s и не пропускающую этот символ к Emacs'у. Для
914 снятия блокировки экрана нажмите C-q. Обратитесь к разделу "Spontaneous 916 снятия блокировки экрана нажмите C-q. Обратитесь к разделу "Spontaneous
915 Entry to Incremental Search" руководства Emacs, чтобы узнать о том, как 917 Entry to Incremental Search" руководства Emacs, чтобы узнать о том, как
916 бороться с этой "особенностью". 918 бороться с этой "особенностью".
917 919
918 Если вы во время инкрементального поиска нажмете <Delback>, то вы заметите, 920 Если вы во время инкрементального поиска нажмете <Delback>, то вы заметите,
919 что последний символ в искомой строке удалился, и поиск вернулся к 921 что последний символ в искомой строке удалился, и поиск вернулся к
920 предыдущему найденному месту. Например, предположим, что вы набрали "к", 922 предыдущему найденному месту. Например, предположим, что вы набрали "к",
921 поиск перейдет к первому вхождению символа "к". Теперь, если вы наберете 923 поиск перейдет к первому вхождению символа "к". Теперь, если вы наберете
922 "у", курсор перейдет к первому вхождению "ку". Нажатие <Delback> удалит 924 "у", курсор перейдет к первому вхождению "ку". Нажатие <Delback> удалит
923 символ "у" из строки поиска, и курсор вернется к первому вхождению "к". 925 символ "у" из строки поиска, и курсор вернется к первому вхождению "к".
924 926
925 Если вы во время поиска введете control- или meta- символ (за некоторыми 927 Если вы во время поиска введете control- или meta- символ (за некоторыми
926 исключениями, такими, как символы начинающие поиск, а именно C-s и C-r), 928 исключениями, например, такими, как символы C-s и C-r, которые начинают
927 поиск прекратится. 929 поиск), то поиск прекратится.
928 930
929 C-s начинает поиск и ищет любые вхождения искомой строки ПОСЛЕ текущей 931 C-s начинает поиск и ищет любые вхождения искомой строки ПОСЛЕ текущей
930 позиции курсора. Если вы хотите найти что-то ранее в тексте, то нажмите 932 позиции курсора. Если вы хотите найти что-то ранее в тексте, то нажмите
931 C-r. Все, что мы говорили о C-s, применимо и к C-r, за исключением 933 C-r. Все, что мы говорили о C-s, применимо и к C-r, только C-r ищет в
932 противоположного направления поиска. 934 противоположном направлении.
933 935
934 936
935 * МНОЖЕСТВО ОКОН (MULTIPLE WINDOWS) 937 * МНОЖЕСТВО ОКОН (MULTIPLE WINDOWS)
936 ----------------------------------- 938 -----------------------------------
937 939
938 Одной из приятных особенностей Emacs является то, что вы можете одновременно 940 Одной из приятных особенностей Emacs'а является то, что вы можете
939 отображать на экране несколько окон. 941 одновременно отображать на экране несколько окон.
940 942
941 >> Переместите курсор на эту строку и наберите C-u 0 C-l (это CONTROL-L, а 943 >> Переместите курсор на эту строку и наберите C-u 0 C-l (это CONTROL-L, а
942 не CONTROL-1). 944 не CONTROL-1).
943 945
944 >> Теперь наберите C-x 2, что разделит экран на два окна. 946 >> Теперь наберите C-x 2, что разделит экран на два окна.
954 956
955 >> Нажмите C-x o снова, чтобы переместить курсор назад в верхнее окно. 957 >> Нажмите C-x o снова, чтобы переместить курсор назад в верхнее окно.
956 Курсор в верхнем окне там же, где и был до того. 958 Курсор в верхнем окне там же, где и был до того.
957 959
958 Вы можете продолжать переключаться между окнами, используя C-x o. Каждое 960 Вы можете продолжать переключаться между окнами, используя C-x o. Каждое
959 окно хранит свою позицию курсора, но только одно показывает курсор. Все 961 окно хранит свою позицию курсора, но только одно показывает курсор. Все
960 обычные команды редактирования применяются к окну, в котором отображается 962 обычные команды редактирования применяются к окну, в котором отображается
961 курсор. Мы называем это окно "выбранным" ("selected window"). 963 курсор. Мы называем это окно "выбранным" ("selected window").
962 964
963 Команда C-M-v очень удобна, когда вы редактируете текст в одном окне, а 965 Команда C-M-v очень удобна, когда вы редактируете текст в одном окне, а
964 второе используете в качестве справочника. Вы можете всегда сохранять 966 второе используете в качестве справочника. Вы можете всегда сохранять
965 курсор в окне редактирования и последовательно продвигаться во втором, 967 курсор в окне редактирования и последовательно продвигаться во втором,
966 используя C-M-v. 968 используя C-M-v.
967 969
968 C-M-v -- пример CONTROL-META символа. Если у вас есть настоящая кнопка META 970 C-M-v -- пример CONTROL-META символа. Если у вас есть настоящая кнопка META
969 (Alt), то вы можете набрать C-M-v, нажав одновременно CONTROL и META и, не 971 (обычно помеченная как Alt), то вы можете набрать C-M-v, нажав одновременно
970 отпуская их, нажать v. И не важно, какая из клавиш будет нажата первой, 972 CONTROL и META и, не отпуская их, нажать v. Не важно, какая из клавиш, CONTROL
971 CONTROL или META, поскольку эти кнопки модифицируют тип символа. 973 или META, будет нажата первой, поскольку обе эти кнопки модифицируют тип
974 символа.
972 975
973 Если у вас нет настоящей кнопки META, и вместо нее вы используете <ESC>, то 976 Если у вас нет настоящей кнопки META, и вместо нее вы используете <ESC>, то
974 порядок должен быть следующим: вы должны нажать <ESC>, а затем CTRL-v; 977 порядок их нажатия важен: сначала вы должны нажать <ESC>, а затем CTRL-v;
975 CONTROL-<ESC> v не будет работать. Это происходит потому, что <ESC> имеет 978 CONTROL-<ESC> v не сработает. Это происходит потому, что <ESC> имеет
976 свой собственный символ -- это не модифицирующая кнопка. 979 свой собственный символ -- это не модифицирующая кнопка.
977 980
978 >> Нажмите C-x 1 (в верхнем окне), чтобы избавиться от нижнего окна. 981 >> Нажмите C-x 1 (в верхнем окне), чтобы избавиться от нижнего окна.
979 982
980 (Если бы вы нажали C-x 1 в нижнем окне, то вы бы избавились от верхнего. 983 (Если бы вы нажали C-x 1 в нижнем окне, то вы бы избавились от верхнего.
981 Понимайте эту команду как "Оставить только одно окно -- то, в котором я 984 Понимайте эту команду как "Оставить только одно окно -- то, в котором я
982 сейчас нахожусь"). 985 сейчас нахожусь").
983 986
984 Вам не нужно отображать один и тот же буфер в обоих окнах. Если вы 987 Вам не нужно отображать один и тот же буфер в обоих окнах. Если вы
985 используете C-x C-f, чтобы открыть файл в одном окне, другое останется без 988 используете C-x C-f, чтобы открыть файл в одном окне, другое останется без
986 изменения. Вы можете открывать файлы в каждом окне независимо. 989 изменения. Вы можете открывать файлы в каждом окне независимо.
987 990
988 Есть другой путь использовать два окна, отображающих разные файлы: 991 Есть и другой путь использовать два окна, отображающих разные файлы:
989 992
990 >> Наберите C-x 4 C-f, и введите имя одного из ваших файлов. Завершите ввод 993 >> Наберите C-x 4 C-f, и введите имя одного из ваших файлов. Завершите ввод
991 нажатием <Return>. Заметьте, что выбранный файл появился в нижнем окне. 994 нажатием <Return>. Заметьте, что выбранный файл появился в нижнем окне.
992 Курсор перешел туда же. 995 Курсор перешел туда же.
993 996
994 >> Наберите C-x o, чтобы вернуться в верхнее окно, и затем C-x 1, чтобы 997 >> Наберите C-x o, чтобы вернуться в верхнее окно, и затем C-x 1, чтобы
995 удалить нижнее окно. 998 удалить нижнее окно.
996 999
997 1000
998 * РЕКУРСИВНЫЕ УРОВНИ РЕДАКТИРОВАНИЯ (RECURSIVE EDITING LEVELS) 1001 * РЕКУРСИВНЫЕ УРОВНИ РЕДАКТИРОВАНИЯ (RECURSIVE EDITING LEVELS)
999 -------------------------------------------------------------- 1002 --------------------------------------------------------------
1000 1003
1001 Иногда вы будете попадать в так называемые "рекурсивные уровни 1004 Иногда вы будете попадать в так называемые "рекурсивные уровни
1002 редактирования". На это указывают прямоугольные скобки в строке статуса, 1005 редактирования". На это указывают прямоугольные скобки в строке состояния,
1003 окружающие обычные скобки вокруг имени основного режима. Например, вы 1006 окружающие обычные скобки вокруг имени основного режима. Например, вы
1004 увидите [(Fundamental)] вместо (Fundamental). 1007 увидите [(Fundamental)] вместо (Fundamental).
1005 1008
1006 Чтобы выйти из рекурсивных уровней редактирования, нажмите <ESC> <ESC> 1009 Чтобы выйти из рекурсивных уровней редактирования, нажмите <ESC> <ESC>
1007 <ESC>. Это многоцелевая команда "выход". Вы также можете использовать ее 1010 <ESC>. Это многоцелевая команда "выхода". Вы также можете использовать ее
1008 как для уничтожения лишних окон, так и для выхода из мини-буфера. 1011 как для уничтожения лишних окон, так и для выхода из мини-буфера.
1009 1012
1010 >> Нажмите M-x, чтобы попасть в мини-буфер, а затем нажмите <ESC> <ESC> 1013 >> Нажмите M-x, чтобы попасть в мини-буфер, а затем нажмите <ESC> <ESC>
1011 <ESC>, чтобы покинуть его. 1014 <ESC>, чтобы покинуть его.
1012 1015
1013 Вы не можете использовать C-g для выхода из рекурсивных уровней 1016 Вы не можете использовать C-g для выхода из рекурсивных уровней
1014 редактирования. Это потому, что C-g используется для отмены команды и 1017 редактирования. Это потому, что C-g используется для отмены команд и
1015 аргументов БЕЗ рекурсивных уровней редактирования. 1018 аргументов ВНУТРИ рекурсивных уровней редактирования.
1016 1019
1017 1020
1018 * КАК ПОЛУЧИТЬ ДОПОЛНИТЕЛЬНУЮ ПОМОЩЬ 1021 * КАК ПОЛУЧИТЬ ДОПОЛНИТЕЛЬНУЮ ПОМОЩЬ
1019 ------------------------------------ 1022 ------------------------------------
1020 1023
1021 В этом учебнике мы попытались снабдить вас только той информацией, которая 1024 В этом учебнике мы попытались снабдить вас только той информацией, которая
1022 поможет вам начать пользоваться Emacs. Очень много информации доступно в 1025 поможет вам начать пользоваться Emacs'ом. В Emacs'е очень много средств и
1023 Emacs и невозможно всю ее представить здесь. Однако, вы можете выучить 1026 особенностей, и представить все это здесь не представляется возможным.
1024 больше возможностей Emacs и узнать другие полезные особенности. Emacs 1027 Однако, возможно вы захотите узнать больше о возможностях Emacs'а. Emacs
1025 предоставляет команды для чтения документации о командах Emacs. Эти команды 1028 предоставляет команды для чтения документации о командах Emacs. Эти команды
1026 "справки" ("help") все начинаются с символа CONTROL-h, который является 1029 "справки" ("help") все начинаются с символа CONTROL-h, который является
1027 "символом помощи". 1030 "символом помощи".
1028 1031
1029 Чтобы использовать возможности справки, нажмите C-h, и затем -- символ, который 1032 Чтобы использовать возможности справки, нажмите C-h, и затем -- символ, который
1030 расскажет, какой именно вид справки вы хотите получить. Если вы 1033 расскажет, какой именно вид справки вы хотите получить. Если вы
1031 ДЕЙСТВИТЕЛЬНО растерялись, наберите C-h ?, и Emacs расскажет вам о том, 1034 ДЕЙСТВИТЕЛЬНО растерялись, наберите C-h ?, и Emacs расскажет вам о том,
1032 какую справку он может вам предоставить. Если вы нажали C-h и передумали 1035 какую справку он может вам предоставить. Если вы нажали C-h и передумали
1033 обращаться к справке, то просто нажмите C-g, чтобы отменить эту команду. 1036 обращаться к справке, то просто нажмите C-g, чтобы отменить эту команду.
1034 1037
1035 (Кое-где переназначают символ C-h. Реальной необходимости в этом нет, и 1038 (Кое-где переназначают символ C-h. Реальной необходимости в этом нет, и
1036 если это так, то сообщите об этом системному администратору. Тем временем, 1039 если это так, то сообщите об этом системному администратору. Тем временем,
1037 если C-h не вызывает сообщение помощи внизу экрана, то попробуйте вместо 1040 если C-h не вызывает сообщение помощи внизу экрана, то попробуйте вместо
1038 этого нажать клавишу F1 или набрать M-x help RET). 1041 этого нажать клавишу F1 или набрать M-x help RET).
1039 1042
1040 Одна из самых главных функций справки -- C-h c. Нажмите C-h, а затем c, и 1043 Одна из самых главных функций справки -- C-h c. Нажмите C-h, а затем c и
1041 символ команды или последовательность, и Emacs отобразит краткое описание 1044 символ команды или последовательность, и Emacs отобразит краткое описание
1042 набранной команды. 1045 набранной команды.
1043 1046
1044 >> Нажмите C-h c C-p. 1047 >> Нажмите C-h c C-p.
1045 1048
1046 Сообщение должно выглядеть примерно так: 1049 Сообщение должно выглядеть примерно так:
1047 1050
1048 C-p runs the command previous-line 1051 C-p runs the command previous-line
1049 (C-p выполняет команду previous-line {предыдущая-строка}) 1052 (C-p выполняет команду previous-line {предыдущая-строка})
1050 1053
1051 Вам сообщают "имя функции". Имена функций используются в основном для 1054 Вам сообщают "имя функции". Имена функций используются в основном для
1052 настройки и расширения Emacs. Имена функций выбраны так, чтобы показать, что 1055 настройки и расширения Emacs. Имена функций выбраны так, чтобы показать, что
1053 именно команда делает, а также они позволяют с помощью этой краткой 1056 именно команда делает, а также они позволяют с помощью этой краткой
1054 информации легче запомнить уже выученные команды. 1057 информации легче запомнить уже выученные команды.
1059 1062
1060 Вы можете получить больше информации о команде используя C-h k вместо C-h c. 1063 Вы можете получить больше информации о команде используя C-h k вместо C-h c.
1061 1064
1062 >> Наберите C-h k C-p. 1065 >> Наберите C-h k C-p.
1063 1066
1064 Вы увидите описание функции, а также ее имя в отдельном окне Emacs. Когда вы 1067 Вы увидите описание функции, а также ее имя, в отдельном окне Emacs. Когда
1065 завершите чтение, нажмите C-x 1, чтобы избавиться от текста справки. Вы 1068 вы завершите чтение, нажмите C-x 1, чтобы избавиться от текста справки.
1066 можете выполнить изменение текста во время просмотра текста справки, а 1069 Не обязательно нажимать C-x 1 сразу: вы можете сначала выполнить какие-либо
1067 только затем нажать C-x 1. 1070 изменения текста во время просмотра текста справки, и только затем нажать
1071 C-x 1.
1068 1072
1069 Есть еще несколько полезных функций, доступных через C-h: 1073 Есть еще несколько полезных функций, доступных через C-h:
1070 1074
1071 C-h f Описывает функцию. Вам необходимо набрать имя функции. 1075 C-h f Описывает функцию. Вам необходимо набрать имя функции.
1072 1076
1073 >> Попробуйте набрать C-h f previous-line<Return>. 1077 >> Попробуйте набрать C-h f previous-line<Return>.
1074 Это распечатает информацию Emacs о функции, которая выполняется командой 1078 Это отобразит информацию Emacs о функции, которая выполняется командой
1075 C-p. 1079 C-p.
1076 1080
1077 Аналогичная команда C-h v отображает документацию о переменных, значение 1081 Аналогичная команда C-h v отображает документацию о переменных, значение
1078 которых вы можете изменить для настройки поведения Emacs. Вам нужно набрать 1082 которых вы можете изменить для настройки поведения Emacs. Вам нужно набрать
1079 имя переменной, когда Emacs запросит его. 1083 имя переменной, когда Emacs запросит его.
1080 1084
1081 C-h a (Hyper Apropos). Введите ключевое слово и Emacs покажет вам список 1085 C-h a (Apropos Command). Введите ключевое слово и Emacs покажет вам
1082 всех функций и переменных, имена которых содержат это 1086 список всех команд и функций, имена которых содержат это слово.
1083 слово. Команды, которые могут быть вызваны через Meta-x, будут 1087 Для команд, которые могут быть вызваны через Meta-x, Emacs
1084 отмечены звездочкой слева. 1088 покажет слово "Command" слева от их описания, а также символы,
1089 которые эти команды вызывают.
1085 1090
1086 >> Наберите C-h a file<Return>. 1091 >> Наберите C-h a file<Return>.
1087 1092
1088 Это отобразит в другом окне список всех команд M-x, у которых в именах 1093 Это отобразит в другом окне список всех команд M-x, у которых в именах
1089 содержится слово "file". Также в списке кроме таких команд, как find-file, 1094 содержится слово "file". Также в списке кроме таких команд, как find-file,
1091 1096
1092 >> Наберите C-M-v для прокрутки окна справки. Выполните это несколько раз. 1097 >> Наберите C-M-v для прокрутки окна справки. Выполните это несколько раз.
1093 1098
1094 >> Наберите C-x 1 для удаления окна справки. 1099 >> Наберите C-x 1 для удаления окна справки.
1095 1100
1096 C-h i Читать интерактивные руководства (так называемые Info). Эта команда 1101 C-h i Читать интерактивные руководства (команда Info). Эта команда
1097 переходит в специальный буфер с именем `*info*', где вы можете 1102 переходит в специальный буфер с именем `*info*', где вы можете
1098 читать интерактивные руководства для пакетов, установленных в вашей 1103 читать интерактивные руководства для пакетов, установленных в вашей
1099 системе. Наберите m emacs <Return> для чтения руководства по 1104 системе. Наберите m emacs <Return> для чтения руководства по
1100 Emacs. Если вы никогда ранее не использовали Info, то наберите ? и 1105 Emacs. Если вы никогда ранее не использовали Info, то наберите ? и
1101 Emacs откроет учебник по возможностям режима Info. Однажды 1106 Emacs откроет учебник по возможностям режима Info. Однажды
1102 ознакомившись с этим учебником, вы должны использовать руководство 1107 ознакомившись с этим учебником, вы должны использовать руководство
1103 Emacs Info в качестве основной документации. 1108 Emacs Info в качестве основной документации.
1104 1109
1105 1110
1106 * ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ 1111 * ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ
1107 ---------------------------- 1112 ----------------------------
1108 1113
1109 Вы можете узнать больше о Emacs, читая его руководство, книги или 1114 Вы можете узнать больше об Emacs'е, читая его руководство, книги или
1110 интерактивный справочник (используйте меню Help или наберите F10 h r). Вам 1115 интерактивный справочник (используйте меню Help или наберите F10 h r). Вам
1111 особенно понравятся две функции -- дополнение, которое сокращает количество 1116 особенно понравятся две функции -- завершение, которое сокращает количество
1112 нажимаемых клавиш, и dired, который облегчает работу с файлами. 1117 нажимаемых клавиш, и dired, который облегчает работу с файлами.
1113 1118
1114 Дополнение используется для того, чтобы избежать набора лишних символов. 1119 Завершение используется для того, чтобы избежать набора лишних символов.
1115 Например, если вы хотите переключиться в буфер *Messages*, то вы можете 1120 Например, если вы хотите переключиться в буфер *Messages*, то вы можете
1116 набрать C-x b *M<Tab> и Emacs заполнит остаток имени буфера, поскольку он 1121 набрать C-x b *M<Tab> и Emacs заполнит остаток имени буфера, поскольку он
1117 может определить его из того, что вы уже набрали. Дополнения описаны в 1122 может определить его из того, что вы уже набрали. Завершения описаны в
1118 Info-версии руководства по Emacs в разделе "Completion". 1123 Info-версии руководства по Emacs в разделе "Completion".
1119 1124
1120 Dired позволяет вам отображать список файлов в каталоге (а также 1125 Dired позволяет вам отображать список файлов в каталоге (а также
1121 подкаталогах, в зависимости от настройки), перемещаться по списку файлов, 1126 подкаталогах, в зависимости от настройки), перемещаться по списку файлов,
1122 открывать их, переименовывать, удалять и выполнять прочие действия над 1127 открывать их, переименовывать, удалять и выполнять прочие действия над
1123 файлами. Dired описан в Info-версии руководства по Emacs в разделе "Dired". 1128 файлами. Dired описан в Info-версии руководства по Emacs в разделе "Dired".
1124 1129
1125 В руководстве также описаны прочие возможности Emacs. 1130 В руководстве также описаны прочие возможности Emacs.
1126 1131
1127 1132
1128 * ЗАКЛЮЧЕНИЕ 1133 * ЗАКЛЮЧЕНИЕ
1138 1143
1139 * УСЛОВИЯ РАСПРОСТРАНЕНИЯ 1144 * УСЛОВИЯ РАСПРОСТРАНЕНИЯ
1140 ------------------------- 1145 -------------------------
1141 1146
1142 Этот учебник произошел из длинной серии учебников Emacs, начатой с однажды 1147 Этот учебник произошел из длинной серии учебников Emacs, начатой с однажды
1143 написанного Stuart Cracraft для оригинального Emacs. 1148 написанного Stuart Cracraft для оригинального Emacs'а.
1144 1149
1145 Эта версия учебника, как и GNU Emacs, защищена правами копирования 1150 Эта версия учебника, как и GNU Emacs, защищена правами копирования
1146 (copyrighted) и приходит с ограничениями распространения копий со 1151 (copyrighted) и приходит с ограничениями распространения копий со
1147 следующими соглашениями: 1152 следующими соглашениями:
1148 1153
1149 Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004, 1154 Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004,
1150 2005, 2006, 2007 Free Software Foundation, Inc. 1155 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
1151 1156
1152 Permission is granted to anyone to make or distribute verbatim copies 1157 Permission is granted to anyone to make or distribute verbatim copies
1153 of this document as received, in any medium, provided that the 1158 of this document as received, in any medium, provided that the
1154 copyright notice and permission notice are preserved, 1159 copyright notice and permission notice are preserved,
1155 and that the distributor grants the recipient permission 1160 and that the distributor grants the recipient permission
1164 Пожалуйста, прочтите файл COPYING и затем дайте копию GNU Emacs вашим 1169 Пожалуйста, прочтите файл COPYING и затем дайте копию GNU Emacs вашим
1165 друзьям. Помогите уничтожить обструкционизм в области программного 1170 друзьям. Помогите уничтожить обструкционизм в области программного
1166 обеспечения ("владение"), используя, создавая и распространяя свободное 1171 обеспечения ("владение"), используя, создавая и распространяя свободное
1167 программное обеспечение! 1172 программное обеспечение!
1168 1173
1169 // замечания, исправления ошибок я жду по адресу alexott@gmail.com. 1174 // жду замечаний и исправления ошибок по адресу alexott@gmail.com.
1170 // Alex Ott. 1175 // Alex Ott.
1171 1176
1172 ;;; Local Variables: 1177 ;;; Local Variables:
1173 ;;; coding: cyrillic-koi8 1178 ;;; coding: cyrillic-koi8
1174 ;;; sentence-end-double-space: nil 1179 ;;; sentence-end-double-space: nil