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