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