1=============================================================================== 2= Д о б р о п о ж а л о в а т ь в у ч е б н и к VIM -- версия 1.7 = 3=============================================================================== 4 5 Vim -- это очень мощный редактор, имеющий множество команд, слишком много 6 для того, чтобы их все можно было описать в таком учебнике, как этот. 7 Этот учебник призван объяснить достаточное число команд для того, чтобы 8 вы могли с лёгкостью использовать Vim в качестве редактора общего 9 назначения. 10 11 Вам потребуется приблизительно 25-30 минут на освоение данного учебника в 12 зависимости от того, сколько времени вы потратите на эксперименты. 13 14 Внимание! Командами в уроках вы будете изменять этот текст. Создайте 15 копию этого файла, чтобы попрактиковаться на ней (если вы запустили 16 "vimtutor", то это уже копия). 17 18 Важно помнить, что этот учебник предназначен для обучения в процессе 19 использования. Это означает, что вы должны запускать команды для того, 20 чтобы как следует их изучить. Если вы просто прочитаете этот текст, то 21 не запомните команды! 22 23 Теперь убедитесь в том, что клавиша CapsLock не включена, и нажмите 24 клавишу j несколько раз, так, чтобы Урок 1.1 полностью поместился на 25 экране. 26 27~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 28 Урок 1.1: ПЕРЕМЕЩЕНИЕ КУРСОРА 29 30 31** Для перемещения курсора нажмите клавиши h,j,k,l так, как показано ниже. ** 32 ^ 33 k Советы: Клавиша h находится слева и перемещает влево. 34 < h l > Клавиша l находится справа и перемещает вправо. 35 j Клавиша j похожа на стрелку `вниз'. 36 v 37 1. Подвигайте курсор по экрану, пока не почувствуете себя уверенно. 38 39 2. Надавите клавишу `вниз' (j) пока она не начнёт повторяться. 40 Теперь вы знаете, как перейти к следующему уроку. 41 42 3. Используя клавишу `вниз' перейдите к Уроку 1.2. 43 44Замечание! Если вы пока не уверены в том, что набираете, нажмите <ESC> для 45 перехода в обычный режим (Normal mode). После этого перенаберите 46 требуемую команду. 47 48Замечание! Обычные клавиши управления курсором (стрелки) также должны 49 работать. Однако, клавиши hjkl позволят вам перемещаться 50 значительно быстрее, как только вы научитесь ими пользоваться. 51 52~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 53 Урок 1.2: ЗАВЕРШЕНИЕ РАБОТЫ С VIM 54 55 56 !! ВНИМАНИЕ! Прежде, чем выполнять любой из описанных ниже шагов, прочтите 57 урок целиком !! 58 59 1. Нажмите клавишу <ESC> (для того, чтобы удостовериться, что вы в обычном 60 режиме (Normal mode)). 61 62 2. Наберите: :q! <ENTER>. 63 (Это означает, что вы должны набрать три символа :q! и нажать клавишу 64 ввод.) Это позволит вам выйти из редактора БЕЗ СОХРАНЕНИЯ любых сделанных 65 изменений. 66 67 3. Когда вы увидите приглашение командной оболочки, наберите команду, 68 которая привела вас в этот учебник. Это может быть: 69 vimtutor <ENTER> 70 71 4. Если вы уверены в том, что запомнили эти шаги, выполните шаги от 1 до 3 72 чтобы выйти и снова запустить редактор. 73 74Замечание! :q! <ENTER> отбрасывает любые сделанные вами изменения. Через 75 несколько уроков вы узнаете как сохранять изменения в файл. 76 77 5. Переместите курсор вниз к Уроку 1.3. 78 79~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 Урок 1.3: РЕДАКТИРОВАНИЕ ТЕКСТА -- УДАЛЕНИЕ 81 82 83** Находясь в обычном режиме нажмите x для удаления символа под курсором. ** 84 85 1. Переместите курсор к строке ниже, помеченной --->. 86 87 2. Для исправления ошибок, переместите курсор, пока он не окажется над 88 удаляемым символом. 89 90 3. Нажмите клавишу x для удаления требуемого символа. 91 92 4. Повторите шаги со 2 по 4 пока строка не будет исправлена. 93 94---> От тттопота копытт пппыль ппо ппполю леттитт. 95 96 5. Теперь, когда строка откорректирована, переходите к Уроку 1.4. 97 98Замечание! В ходе освоения этого учебника не пытайтесь запоминать, учите 99 в процессе использования. 100 101~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 102 Урок 1.4: РЕДАКТИРОВАНИЕ ТЕКСТА -- ВСТАВКА 103 104 105 ** Находясь в обычном режиме, нажмите i для вставки текста. ** 106 107 1. Переместите курсор к первой строке ниже, помеченной --->. 108 109 2. Для того, чтобы сделать первую строку идентичной второй, поместите 110 курсор на символ ПЕРЕД которым следует вставить текст. 111 112 3. Нажмите i и наберите требуемые добавления. 113 114 4. После исправления всех ошибок нажмите <ESC> для возврата в обычный режим. 115 Повторите шаги со 2 по 4, пока фраза не будет исправлена полностью. 116 117---> Часть текста в строке бесследно . 118---> Часть текста в этой строке бесследно пропала. 119 120 5. Когда освоите вставку текста, переходите к Уроку 1.5. 121 122~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 Урок 1.5: РЕДАКТИРОВАНИЕ ТЕКСТА -- ДОБАВЛЕНИЕ 124 125 126 ** Находясь в обычном режиме, нажмите A для добавления текста. ** 127 128 1. Переместите курсор к первой строке ниже, помеченной --->. 129 Не имеет значения на каком символе расположен курсор на этой строке. 130 131 2. Нажмите A и наберите требуемые добавления. 132 133 3. После добавления требуемого текста нажмите <ESC> для возврата в обычный 134 режим. 135 136 4. Переместите курсор на следующую строку, помеченную ---> и повторите шаги 137 со 2 по 4 для исправления этой строки. 138 139---> Часть текста в этой строке бессле 140 Часть текста в этой строке бесследно пропала. 141---> Здесь также не достаёт час 142 Здесь также не достаёт части текста. 143 144 5. Когда освоите добавление текста, переходите к Уроку 1.6. 145 146~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 147 Урок 1.6: РЕДАКТИРОВАНИЕ ФАЙЛА 148 149 150 ** Используйте :wq для сохранения файла и выхода из Vim. ** 151 152 !! ВНИМАНИЕ! Прежде, чем выполнять любой из описанных ниже шагов, прочтите 153 урок целиком !! 154 155 1. Выйдите из Vim, как вы это узнали в Уроке 1.2: :q! 156 Или, если у вас есть доступ к другому терминалу, можете сделать следующее 157 в нём. 158 159 2. По приглашению командной оболочки введите следующую команду: 160 vim tutor <ENTER> 161 `vim' -- команда для запуска редактора Vim, а `tutor' -- имя файла для 162 редактирования. Используете имя файла, который можно изменять. 163 164 3. Вставляйте и удаляйте текст, как вы научились в предыдущих уроках. 165 166 4. Сохраните файл с изменениями и выйдите из Vim выполнив: :wq <ENTER> 167 168 5. Если вы вышли из vimtutor на шаге 1, перезапустите vimtutor и переходите 169 к следующему Резюме. 170 171~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 172 РЕЗЮМЕ УРОКА 1 173 174 175 1. Курсор перемещается либо клавишами со стрелками, либо клавишами hjkl. 176 h (влево) j (вниз) k (вверх) l (вправо) 177 178 2. Для запуска Vim (из приглашения командной оболочки) наберите: 179 vim ИМЯ_ФАЙЛА <ENTER> 180 181 3. Для завершения работы с Vim наберите: 182 <ESC> :q! <ENTER> чтобы отказаться от сохранения изменений. 183 Или наберите: 184 <ESC> :wq <ENTER> чтобы сохранить изменения. 185 186 4. Для удаления символа под курсором в обычном режиме, нажмите: x 187 188 5. Чтобы вставить текст перед курсором в обычном режиме, наберите: 189 i вводите вставляемый текст <ESC> 190 Чтобы добавить текст после курсора: 191 a вводите добавляемый текст <ESC> 192 193Замечание! Нажатие <ESC> переместит вас в обычный режим (Normal mode) либо 194 прервёт нежелательную и частично завершённую команду. 195 196Теперь переходите к Уроку 2. 197 198~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 Урок 2.1: КОМАНДЫ УДАЛЕНИЯ 200 201 202 ** Наберите dw для удаления участка текста до конца слова. ** 203 204 1. Нажмите <ESC>, чтобы перейти в обычный режим. 205 206 2. Переместите курсор вниз, к строке помеченной --->. 207 208 3. Переместите курсор в начало слова, которое следует удалить. 209 210 4. Наберите dw для удаления этого слова. 211 212Замечание! Во время набора буквы dw появятся справа в самой нижней строке 213 экрана. Если вы что-то наберёте неправильно, нажмите <ESC> и начните 214 сначала. 215 216---> Несколько слов рафинад в этом предложении автокран излишни. 217 218 5. Повторите шаги 3 и 4, пока не исправите все ошибки и переходите к 219 Уроку 2.2. 220 221~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 Урок 2.2: ДОПОЛНИТЕЛЬНЫЕ КОМАНДЫ УДАЛЕНИЯ 223 224 225 ** Наберите d$ для удаления текста до конца строки. ** 226 227 1. Нажмите <ESC>, чтобы перейти в обычный режим. 228 229 2. Переместите курсор вниз, к строке помеченной --->. 230 231 3. Переместите курсор к концу правильной строки (ПОСЛЕ первой точки). 232 233 4. Наберите d$ для удаления остатка строки. 234 235---> Кто-то набрал окончание этой строки дважды. окончание этой строки дважды. 236 237 238 5. Чтобы лучше разобраться в том, как это происходит, переходите к Уроку 2.3. 239 240~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 Урок 2.3: КОМАНДЫ И ОБЪЕКТЫ 242 243 244 Многие команды, изменяющие текст, состоят из оператора и объекта. Формат 245 команды удаления с оператором d следующий: 246 247 d объект 248 249 Здесь: 250 d - оператор удаления. 251 объект - над чем должна быть выполнена команда (перечислено ниже). 252 253 Краткий список объектов: 254 w - от курсора до конца слова, включая последующий пробел. 255 e - от курсора до конца слова, НЕ включая последующий пробел. 256 $ - от курсора до конца строки. 257 ^ - от курсора до начала строки. 258 259Замечание! Простое нажатие на символ объекта в обычном режиме (Normal mode) 260 без предварительного оператора переместит курсор так, как указано 261 в списке объектов. 262 263~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 264 Урок 2.4: ИСПОЛЬЗОВАНИЕ СЧЁТЧИКА ДЛЯ ПЕРЕМЕЩЕНИЯ 265 266 267 ** Ввод числа перед оператором перемещения приведёт к его повторению 268 заданное количество раз. ** 269 270 1. Переместите курсор к началу строки отмеченной ---> ниже. 271 272 2. Наберите 2w для перемещения курсора вперёд к началу второго слова. 273 274 3. Наберите 3e для перемещения курсора вперёд к концу третьего слова. 275 276 4. Наберите 0 (нуль) для перемещения к началу строки. 277 278 5. Повторите шаги 2 и 3 с различными числами. 279 280---> Обычная строка из слов для вашего перемещения по ней. 281 282 6. Переходите к Уроку 2.5. 283 284~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 Урок 2.5: ИСПОЛЬЗОВАНИЕ СЧЁТЧИКА ДЛЯ УДАЛЕНИЯ 286 287 288 ** Ввод числа перед оператором приведёт к его повторению 289 заданное количество раз. ** 290 291 Добавьте число перед перед объектом в комбинацию оператора удаления и 292 перемещения указанную выше для удаления указанного количества объектов: 293 d число объект 294 295 1. Переместите курсор к первому слову из прописных букв в отмеченной ---> 296 строке ниже. 297 298 2. Наберите d2w для удаления двух слов из прописных букв. 299 300 3. Повторите шаги 1 и 2 с другими числами для удаления последовательных слов 301 из прописных букв одной командой. 302 303---> эта АБВ ГД строка ЕЖЗИ КЛ МНО из слов П РС ТУФ очищена. 304 305~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 Урок 2.6: ОПЕРАЦИИ СО СТРОКАМИ 307 308 309 ** Наберите dd для удаления целой строки. ** 310 311 В связи с частой необходимостью удаления целой строки, создатели Vi решили 312 для упрощения сделать возможным удаление строки набором двух d. 313 314 1. Переместите курсор вниз, ко второй строке фразы. 315 316 2. Наберите dd для удаления строки. 317 318 3. Теперь переместитесь к четвёртой строке. 319 320 4. Наберите 2dd для удаления двух строк. 321 322---> 1) Летом я хожу на стадион, 323---> 2) О, как внезапно кончился диван! 324---> 3) Я болею за ``Зенит'', ``Зенит'' --- чемпион! 325---> 4) Печально я гляжу на наше поколение! 326---> 5) Его грядущее иль пусто иль темно... 327---> 6) Я сижу на скамейке в ложе `Б' 328---> 7) И играю на большой жестяной трубе. 329 330~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 331 Урок 2.7: КОМАНДА `ОТМЕНА' 332 333 334 ** Нажмите u для отмены результата работы предыдущей команды, U для отмены 335 исправлений во всей строке. ** 336 337 1. Переместите курсор вниз, к строке помеченной --->, и установите его на 338 первую ошибку. 339 340 2. Нажмите x для удаления первого неправильного символа. 341 342 3. Теперь нажмите u для отмены (отката) последней выполненной команды. 343 344 4. Исправьте все ошибки в строке, используя команду x . 345 346 5. Теперь нажмите заглавную U для того, чтобы вернуть всю строку 347 в исходное состояние. 348 349 6. Нажмите u несколько раз для отмены команды U и предыдущих команд. 350 351 7. Нажмите теперь CTRL-R (т.е. удерживайте клавишу CTRL нажатой в момент 352 нажатия клавиши R) несколько раз для возврата команд (откат отката). 353 354---> Испрравьте оошибки в этойй строке и вернитте их сс помощьью `отмены'. 355 356 8. Это были очень полезные команды. Далее переходите к Резюме Урока 2. 357 358~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 РЕЗЮМЕ УРОКА 2 360 361 362 1. Для удаления текста от курсора до конца слова наберите: dw 363 364 2. Для удаления текста от курсора до конца строки наберите: d$ 365 366 3. Для удаления всей строки наберите: dd 367 368 4. Для повтора перемещения введите количество перед командой: 2w 369 370 5. Формат команды в обычном режиме имеет вид: 371 372 [число] команда объект ИЛИ команда [число] объект 373 где: 374 [число] - сколько раз повторить выполнение команды, опционально 375 команда - что выполнить, например d для удаления 376 объект - на что должна воздействовать команда, например w (слово), 377 $ (до конца строки), и т.д. 378 379 6. Для перехода к началу строки используйте нуль: 0 380 381 7. Для отмены (отката) предшествующих действий наберите: u (строчная u) 382 Для отмены (отката) всех изменений в строке наберите: U (прописная U) 383 Для отмены отката наберите: CTRL-R 384 385~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 Урок 3.1: КОМАНДА ВСТАВКИ 387 388 389 ** Наберите p для вставки последнего удалённого текста после курсора. ** 390 391 1. Переместите курсор вниз, к строке помеченной --->. 392 393 2. Наберите dd для удаления строки и её сохранения в буфере Vim'а. 394 395 3. Переместите курсор к строке НАД тем местом, куда следует вставить 396 удалённую строку. 397 398 4. Находясь в обычном режиме наберите p для вставки строки ниже курсора. 399 400 5. Повторите шаги со 2 по 4, пока не расставите все строки в нужном порядке. 401 402---> г) И лучше выдумать не мог. 403---> б) Когда не в шутку занемог, 404---> в) Он уважать себя заставил 405---> а) Мой дядя самых честных правил 406 407~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 408 Урок 3.2: КОМАНДА ЗАМЕНЫ 409 410 411 ** Наберите r и символ, заменяющий символ под курсором. ** 412 413 1. Переместите курсор вниз, к строке помеченной --->. 414 415 2. Установите курсор так, чтобы он находился над первой ошибкой. 416 417 3. Наберите r и затем символ, исправляющий ошибку. 418 419 4. Повторите шаги 2 и 3, пока первая строка не будет исправлена как вторая. 420 421---> В момегт набтра этой чтроки кое0кто с трудом попвдал по клваишам! 422---> В момент набора этой строки кое-кто с трудом попадал по клавишам! 423 424 5. Теперь переходите к Уроку 3.3. 425 426Замечание! Помните, что вы должны учиться в процессе работы, а не просто 427 запоминая. 428 429~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 430 Урок 3.3: КОМАНДА ИЗМЕНЕНИЯ 431 432 433 ** Для изменения конечной части слова наберите ce . ** 434 435 1. Переместите курсор вниз, к строке помеченной --->. 436 437 2. Расположите курсор над буквой `o' в слове `сола'. 438 439 3. Наберите ce и исправьте слово (в данном случае, наберите `лов'). 440 441 4. Нажмите <ESC> и переходите к следующей ошибке (к первому символу, который 442 надо изменить). 443 444 5. Повторите шаги 3 и 4 пока первое предложение не станет идентичным второму. 445 446---> Несколько сола в эьгц строке тпгшцбь редалзкуюиесвх. 447---> Несколько слов в этой строке требуют редактирования. 448 449 Обратите внимание, что ce не только удаляет слово, но и переводит вас в 450 режим вставки. 451 452~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 453 Урок 3.4: ПРОДОЛЖАЕМ ИЗМЕНЯТЬ С КОМАНДОЙ c 454 455 456 ** Команда замены используется с теми же объектами, что и команда удаления. ** 457 458 1. Команда изменения применяется таким же образом, как и команда удаления. 459 Её формат таков: 460 461 [число] c объект ИЛИ c [число] объект 462 463 2. Объекты также совпадают: w (слово), $ (конец строки) и т.п. 464 465 3. Переместите курсор вниз, к строке помеченной --->. 466 467 4. Перейдите к первой ошибке. 468 469 5. Наберите c$ и отредактируйте первую строку так, чтобы она совпадала со 470 второй, после чего нажмите <ESC>. 471 472---> Конец этой строки нуждается в помощи, чтобы стать похожим на второй. 473---> Конец этой строки нуждается в помощи команды c$ . 474 475Замечание! Клавиша Backspace может использоваться для исправления при наборе. 476 477~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 РЕЗЮМЕ УРОКА 3 479 480 481 1. Для вставки текста, который только что был удалён, наберите p . Эта 482 команда вставит удалённый текст ПОСЛЕ курсора (если была удалена строка, 483 то она будет помещена в строке под курсором). 484 485 2. Для замены символа под курсором наберите r и затем заменяющий символ. 486 487 3. Команда изменения позволяет вам изменить указанный объект от курсора до 488 окончания перемещения. Например, наберите ce для замены от курсора до 489 конца слова, c$ для изменения до конца строки. 490 491 4. Формат команды изменения таков: 492 493 [число] c объект ИЛИ c [число] объект 494 495Теперь переходите к следующему уроку. 496 497~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 Урок 4.1: ИНФОРМАЦИЯ О ФАЙЛЕ И РАСПОЛОЖЕНИИ В НЕМ 499 500 501 ** Наберите CTRL-g чтобы увидеть ваше месторасположение в файле и 502 информацию о файле. Наберите G (SHIFT-G) для перемещения к заданной 503 строке в файле. ** 504 505Замечание! Прочитайте весь урок прежде чем выполнять любые команды! 506 507 1. Удерживая клавишу Ctrl нажмите g . Внизу экрана появится строка статуса 508 с именем файла и номером строки, в которой вы находитесь. Запомните номер 509 строки, он потребуется на Шаге 3. 510 511 2. Удерживая клавишу Shift нажмите g для перемещения к концу файла. 512 513 3. Наберите номер строки, в которой вы находились и затем Shift-G. Это 514 вернёт вас к строке, в которой вы были, когда в первый раз нажали Ctrl-g. 515 516 4. Если вы запомнили все вышесказанное, выполните шаги с 1 по 3. 517 518~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 Урок 4.2: КОМАНДА ПОИСКА 520 521 522 ** Наберите / и затем введите искомую фразу. ** 523 524 1. В обычном режиме (Normal mode) наберите символ / . Обратите внимание, 525 что он вместе с курсором появится внизу экрана, как это происходит с 526 командой : . 527 528 2. Теперь наберите 'ошшшибка' <ENTER>. Это то слово, которое вы будете 529 искать. 530 531 3. Для того, чтобы повторить поиск, просто нажмите n . 532 Для поиска этой же фразы в обратном направлении, нажмите Shift-N . 533 534 4. Если вы желаете сразу искать в обратном направлении, используйте 535 команду ? вместо / . 536 537 5. Для того, чтобы вернуться туда, откуда вы начали поиск нажмите Ctrl-O. 538 (Удерживая нажатой клавишу Ctrl нажмите o ). Повторите несколько раз 539 для дальнейшего перехода. Для перехода вперёд используйте Ctrl-I . 540 541---> "ошшшибка" это не способ написания слова `ошибка'; ошшшибка это ошибка. 542 543Замечание! Если при поиске будет достигнут конец файла, то поиск будет продолжен 544 с начала. 545 546~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 547 Урок 4.3: ПОИСК ПАРНЫХ СКОБОК 548 549 550 ** Наберите % для поиска парных ), ] или } . ** 551 552 1. Поместите курсор над любой из (, [ или { в строке ниже, помеченной --->. 553 554 2. Теперь наберите символ % . 555 556 3. Курсор должен перескочить на парную скобку. 557 558 4. Наберите % для возврата курсора назад к первой скобке. 559 560---> Это ( строка, содержащая такие (, такие [ ] и такие { } скобки. )) 561 562Замечание! Это очень удобно при отладке программ с пропущенными скобками! 563 564~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 565 Урок 4.4: СПОСОБ ИСПРАВЛЕНИЯ ОШИБОК 566 567 568 ** Наберите :s/было/стало/g для замены 'было' на 'стало'. ** 569 570 1. Переместите курсор вниз, к строке помеченной --->. 571 572 2. Наберите :s/уводю/увожу <ENTER> . Обратите внимание на то, что эта 573 команда заменит только первое найденное вхождение в строке. 574 575 3. Теперь наберите :s/уводю/увожу/g , добавленная в конце g означает 576 подстановку глобально во всей строке. Это заменит все найденные в строке 577 вхождения. 578 579---> Я уводю к отверженным селеньям, я уводю сквозь вековечный стон, я уводю к 580 забытым поколеньям. 581 582 4. Для замены всех вхождений последовательности символов между двумя 583 строками, 584 наберите :#,#s/было/стало/g где #,# -- номера этих строк. 585 Наберите :%s/было/стало/g для замены всех вхождений во всем файле. 586 Наберите :%s/было/стало/gc для поиска всех вхождений во всем файле и 587 запроса подтверждения замены. 588 589~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 590 РЕЗЮМЕ УРОКА 4 591 592 593 1. Ctrl-g показывает ваше положение в файле и информацию о нем. 594 Shift-G перемещает вас в конец файла. Номер, за которым следует Shift-G 595 позволяет перейти к строке с этим номером. 596 gg перемещает вас к первой строке файла. 597 598 2. Нажатие / и затем ввод строки позволяет произвести поиск этой строки 599 ВПЕРЁД по тексту. 600 Нажатие ? и затем ввод строки позволяет произвести поиск этой строки 601 НАЗАД по тексту. 602 После поиска наберите n для перехода к следующему вхождению искомой 603 строки в том же направлении или Shift-N для перехода в противоположном 604 направлении. 605 606 3. Нажатие % , когда курсор находится на (,),[,],{, или } позволяет найти 607 парную скобку. 608 609 4. Для подстановки `стало' вместо первого `было' в строке, наберите 610 :s/было/стало 611 Для подстановки `стало' вместо всех `было' в строке, наберите 612 :s/было/стало/g 613 Для замены в интервале между двумя строками, наберите 614 :#,#s/было/стало/g 615 Для замены всех вхождений `было' на `стало' в файле, наберите 616 :%s/было/стало/g 617 Чтобы редактор каждый раз запрашивал подтверждение, добавьте 'c' 618 :%s/было/стало/gc 619 620~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 621 Урок 5.1: КАК ВЫПОЛНИТЬ ВНЕШНЮЮ КОМАНДУ 622 623 624 ** Наберите :! и затем внешнюю команду, которую следует выполнить. ** 625 626 1. Наберите уже знакомую вам команду : для установки курсора в командную 627 строку редактора. Это позволит вам ввести команду. 628 629 2. Теперь наберите символ ! (восклицательный знак). Это позволит выполнить 630 внешнюю команду, используя командную оболочку. 631 632 3. Для примера наберите ls после ! и нажмите <ENTER>. Команда выведет 633 список файлов в текущем каталоге, точно также, как если бы вы ввели эту 634 команду в приглашении оболочки. Или попробуйте :!dir , если команда ls 635 не сработала. 636 637Замечание! Таким способом можно выполнить любую внешнюю команду с указанием 638 аргументов. 639 640Замечание! Все команды, начинающиеся с : , должны завершаться нажатием 641 <ENTER>. Далее на это не всегда будет обращаться особое внимание. 642 643~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 Урок 5.2: КАК ЗАПИСАТЬ ФАЙЛ 645 646 647 ** Для сохранения изменений, произведённых в файле, 648 наберите :w ИМЯ_ФАЙЛА. ** 649 650 1. Наберите :!dir или :!ls для получения списка файлов в текущем 651 каталоге. Как вам уже известно, после ввода команды надо нажать <ENTER>. 652 653 2. Придумайте название для файла, которое ещё не существует, например TEST. 654 655 3. Теперь наберите :w TEST (где TEST -- это имя файла, придуманное вами.) 656 657 4. Команда сохранит весь этот файл (Учебник по Vim) под именем TEST. Чтобы 658 удостовериться в этом, снова наберите :!dir или :!ls и просмотрите 659 каталог. 660 661Замечание! Если вы выйдете из Vim и затем запустите его снова с файлом TEST 662 (т.е. выполните vim TEST ), этот файл будет точной копией учебника 663 в тот момент, когда вы его сохранили. 664 665 5. Теперь удалите этот файл, набрав для MS-DOS :!del TEST 666 для Unix :!rm TEST 667 668~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 Урок 5.3: ВЫБОРОЧНОЕ СОХРАНЕНИЕ 670 671 672 ** Для сохранения части файла, наберите v выберите часть 673 и сохраните её :w ИМЯ_ФАЙЛА ** 674 675 1. Переместите курсор к этой строке. 676 677 2. Нажмите v и переместите курсор ниже к пятому шагу. Обратите внимание, 678 что текст подсвечен. 679 680 3. Нажмите : и внизу экрана появится :'<,'> . 681 682 4. Введите w TEST (где TEST -- имя файла, который ещё не существует). 683 До нажатия <ENTER>, проверьте что внизу экрана написано :'<,'>w TEST. 684 685 5. Vim запишет выбранные строки в файл TEST. Как и прежде, убедитесь в 686 наличии этого файла командой :!dir или :!ls . НЕ УДАЛЯЙТЕ этот файл, он 687 потребуется в следующем уроке. 688 689Замечание! Нажатие v начинает визуальный выбор. Вы можете перемещать курсор 690 для изменения выбора. Затем для выбранного фрагмента можно выполнить 691 какой-то оператор, например, удалить нажатием d. 692 693~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 Урок 5.4: ЧТЕНИЕ И ОБЪЕДИНЕНИЕ ФАЙЛОВ 695 696 697 ** Для вставки содержимого из файла, наберите :r ИМЯ_ФАЙЛА ** 698 699 1. Установите курсор над этой строкой. 700 701Замечание! После выполнения Шага 2 вы увидите текст из Урока 5.3. Переместитесь 702 ВНИЗ по тексту до этого урока. 703 704 2. Теперь прочитайте ваш файл TEST, используя команду :r TEST , где TEST -- 705 это имя файла. 706 707 3. Для проверки что содержимое файла было вставлено, переместитесь по тексту 708 и удостоверьтесь, что теперь в нём две копии Урока 5.3: исходная и из 709 файла TEST. 710 711Замечание! Вставить можно и вывод внешней команды. Например, :r !ls прочитает 712 вывод команды ls и вставит его ниже курсора. 713 714~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 715 РЕЗЮМЕ УРОКА 5 716 717 718 1. :!команда исполняет внешнюю команду. 719 720 Некоторые полезные примеры: 721 (MS-DOS) (Unix) 722 :!dir :!ls -- вывести список файлов в каталоге. 723 :!del ИМЯ :!rm ИМЯ -- удалить файл по имени. 724 725 2. :w ИМЯ_ФАЙЛА записывает текущий редактируемый в Vim файл на диск под 726 указанным именем. 727 728 3. v перемещение :w ИМЯ_ФАЙЛА сохраняет визуально выбранные строки в файл 729 с указанным именем. 730 731 4. :r ИМЯ_ФАЙЛА считывает с диска файл с указанным именем и помещает его 732 ниже курсора. 733 734 5. :r !dir читает вывод команды dir и помещает его ниже курсора. 735 736~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 737 Урок 6.1: КОМАНДА СОЗДАНИЯ 738 739 740 ** Наберите o чтобы создать пустую строку под курсором и перейти в режим 741 вставки (Insert mode) ** 742 743 1. Переместите курсор вниз, к строке помеченной --->. 744 745 2. Наберите o (в нижнем регистре) для того, чтобы создать пустую строку 746 НИЖЕ курсора и перейти в режим вставки (Insert mode). 747 748 3. Теперь наберите какой-нибудь текст и нажмите <ESC> для выхода из режима 749 вставки. 750 751---> После нажатия o курсор перейдёт на новую пустую строку в режиме вставки. 752 753 4. Для создания строки ВЫШЕ курсора, просто наберите заглавную O , вместо 754 строчной o . Попробуйте проделать это с нижеследующей строкой. 755 756---> Создайте новую строку над этой, поместив на неё курсор и нажав Shift-O. 757 758~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 759 Урок 6.2: КОМАНДА ДОБАВЛЕНИЯ 760 761 762 ** Наберите a , чтобы вставить текст ПОСЛЕ курсора. ** 763 764 1. Переместите курсор вниз, в начало первой строки помеченной --->. 765 766 2. Набирайте e пока курсор не переместиться на конец cтро . 767 768 3. Наберите a (в нижнем регистре) для добавления текста ПОСЛЕ символа, 769 находящегося под курсором. (Заглавная A позволяет добавить в конец 770 строки.) 771 772 4. Допишите слово так, как показано в строке ниже. Нажмите <ESC> для выхода 773 из режима вставки (Insert mode). 774 775 5. Используйте e для перехода к концу следующего незавершённого слова и 776 повторите шаги 3 и 4. 777 778---> Эта стро позволит вам попрактиков в добавле текста. 779---> Эта строчка позволит вам попрактиковаться в добавлении текста. 780 781Замечание! a , i и A переводят в один и тот же режим вставки, различие 782 только в том, где вставляются символы. 783 784~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 Урок 6.3: ЕЩЁ ОДИН СПОСОБ ЗАМЕНЫ 786 787 788 ** Наберите заглавную R для замены более чем одного символа. ** 789 790 1. Переместите курсор вниз, к первой строке помеченной --->, и в начало 791 первого слова xxx. 792 793 2. Теперь нажмите R и введите число, указанное ниже во второй строке, чтобы 794 заменить xxx. 795 796 3. Нажмите <ESC> для выхода из режима замены. Заметьте, что остаток строки 797 не был изменён. 798 799 4. Повторите эти шаги для замены оставшихся xxx. 800 801---> Добавление 123 к xxx даёт xxx. 802---> Добавление 123 к 456 даёт 579. 803 804Замечание! Режим замены похож на режим вставки, но каждый введённый символ 805 удаляет существующий. 806 807~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 Урок 6.4: КОПИРОВАНИЕ И ВСТАВКА ТЕКСТА 809 810 811 ** Используйте команду y для копирования и p для вставки ** 812 813 1. Переместите курсор вниз, к первой строке помеченной --->, и после `а)'. 814 815 2. Переключитесь в режим визуального выбора нажав v и переместите курсор 816 перед словом `первый'. 817 818 3. Введите y для копирования подсвеченного текста. 819 820 4. Переместите курсор в конец следующей строки комбинацией j$ . 821 822 5. Нажмите p для вставки текста. Затем введите `второй' и нажмите <ESC>. 823 824---> а) Этот элемент первый. 825 б) 826 827Замечание! Также возможно использовать yw (команду y с оператором w ) для 828 копирования одного слова. 829 830~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 831 Урок 6.5: УСТАНОВКА ПАРАМЕТРОВ 832 833 834 ** Установка параметра для игнорирования регистра при поиске или замене ** 835 836 1. Найдите слово `игнорировать', набрав: /игнорировать <ENTER>. 837 Повторите поиск несколько раз, нажимая клавишу n . 838 839 2. Установите параметр `ic' (игнорировать регистр), набрав: :set ic 840 841 3. Теперь снова несколько раз сделайте поиск слова `игнорировать', 842 нажимая: n 843 Заметьте, что теперь находятся `Игнорировать' и `ИГНОРИРОВАТЬ'. 844 845 4. Установите параметры `hlsearch' и `incsearch': :set hls is 846 847 5. Теперь опять введите команду поиска и посмотрите, что получится: 848 /игнорировать <ENTER> 849 850 6. Для возвращения учёта регистра при поиске наберите: :set noic 851 852Замечание! Для отключения подсветки совпадений наберите: :nohlsearch 853 854Замечание! Если вы хотите игнорировать регистр только для одного поиска, 855 используйте \с в команде поиска: /игнорировать\c <ENTER> 856 857~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 858 РЕЗЮМЕ УРОКА 6 859 860 861 1. Нажмите o для создания строки НИЖЕ курсора и перехода в режим вставки. 862 Нажмите O для создания строки ВЫШЕ курсора. 863 864 2. Нажмите a для вставки текста ПОСЛЕ курсора. 865 Нажмите A для вставки текста в конец строки. 866 867 3. Команда e подводит курсор к концу слова. 868 869 4. Команда y копирует текст, p -- вставляет скопированный текст. 870 871 5. Нажатие заглавной R переводит в режим замены до нажатия клавиши <ESC> . 872 873 6. Наберите `:set xxx' для включения параметра `xxx', некоторые параметры: 874 875 `ic' `ignorecase' игнорирование регистра при поиске 876 `is' `incsearch' отображение частичных совпадений при поиске 877 `hls' `hlsearch' подсветка всех совпадений при поиске 878 879 7. Добавьте `no' перед параметром для его отключения: :set noic 880 881~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 882 Урок 7.1: ВСТРОЕННАЯ СПРАВКА 883 884 885 ** Используйте встроенную справочную систему ** 886 887 Vim обладает мощной встроенной справочной системой. Для начала попробуйте 888 один из трёх вариантов: 889 - нажмите клавишу <HELP> (если таковая имеется на клавиатуре) 890 - нажмите клавишу <F1> (если таковая имеется на клавиатуре) 891 - наберите :help <ENTER> 892 893 Прочитайте текст в окне справки для получения представления о том как 894 работает справка. 895 Нажмите CTRL-W CTRL-W для перехода от окна к окну. 896 Наберите :q <ENTER> чтобы закрыть окно справки. 897 898 Вы можете найти справку для любого понятия или команды, задав соответствующий 899 аргумент команде `:help'. Попробуйте следующее (не забудьте нажать <ENTER>): 900 901 :help w 902 :help c_CTRL-D 903 :help insert-index 904 :help user-manual 905 906~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 907 Урок 7.2: СОЗДАНИЕ СТАРТОВОГО СЦЕНАРИЯ 908 909 910 ** Включим возможности Vim ** 911 912 Vim имеет намного больше возможностей, чем Vi, но большинство из них по 913 умолчанию выключены. Для использования больших возможностей вам следует 914 создать файл `vimrc'. 915 916 1. Отредактируйте новый файл `vimrc'. Его расположение зависит от 917 используемой системы: 918 :e ~/.vimrc для Unix 919 :e ~/_vimrc для MS-Windows 920 921 2. Теперь прочитайте пример файла `vimrc': 922 :r $VIMRUNTIME/vimrc_example.vim 923 924 3. Запишите созданный вами новый файл `vimrc': 925 :w 926 927 Теперь при следующем запуске Vim будет включена подсветка синтаксиса. Все 928 настройки, предпочитаемые вами, могут быть добавлены в файл `vimrc'. 929 Для дальнейшей информации наберите :help vimrc-intro 930 931~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 Урок 7.3: ДОПОЛНЕНИЕ 933 934 935 ** Командную строку можно дополнить нажав CTRL-D и <TAB> ** 936 937 1. Удостоверьтесь, что Vim не в режиме совместимости: :set nocp 938 939 2. Посмотрите какие файлы есть в каталоге: :!ls или :!dir 940 941 3. Наберите начало команды: :e 942 943 4. Нажмите CTRL-D и Vim отобразит список команд начинающихся на `e'. 944 945 5. Нажмите <TAB> и Vim дополнит название команды до `:edit'. 946 947 6. Теперь добавьте пробел и начало существующего имени файла: :edit ФАЙ 948 949 7. Нажмите <TAB> и Vim дополнит имя файла, если оно уникальное. 950 951Замечание! Дополнение работает для многих команд. Попробуйте нажать CTRL-D и 952 <TAB>. Это особенно полезно для команды :help . 953 954~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 955 РЕЗЮМЕ УРОКА 7 956 957 958 1. Наберите :help или нажмите <F1>, или <Help> для открытия окна справки. 959 960 2. Наберите :help cmd для поиска справки по команде. 961 962 3. Нажмите CTRL-W CTRL-W для перехода к другому окну. 963 964 4. Наберите :q для закрытия окна справки (если оно активно). 965 966 5. Для хранения ваших настроек создайте стартовый сценарий `vimrc'. 967 968 6. При наборе : команды, нажмите CTRL-D для отображения возможных 969 дополнений. Нажмите <TAB> для использования дополнения. 970 971~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 972 973 На этом завершается Учебник Vim. Он был предназначен дать общее представление 974 о редакторе Vim, достаточное для того, чтобы с лёгкостью использовать его. 975 Учебник далёк от полноты, поскольку Vim имеет очень много команд. Прочитайте 976 теперь руководство пользователя: `:help user-manual'. 977 978 Для дальнейшего чтения рекомендуется книга: 979 Vim - Vi Improved, автор: Steve Oualline, издатель: New Riders 980 981 Эта книга полностью посвящена Vim. Особенно полезна она будет новичкам. 982 Содержит множество примеров и иллюстраций. 983 См. http://iccf-holland.org/click5.html 984 985 Следующая книга более почтенного возраста и посвящена больше Vi, чем Vim, 986 однако также рекомендуется: 987 Learning the Vi Editor, автор: Linda Lamb, 988 издатель: O'Reilly & Associates Inc. 989 990 Это хорошая книга, чтобы узнать всё, что только можно сделать в Vi. Шестое 991 издание также включает информацию о Vim. 992 993 Этот учебник написал Michael C. Pierce и Robert K. Ware, Colorado School of 994 Mines с использованием идей, которые предложил Charles Smith, Colorado State 995 University. E-mail: [email protected]. 996 997 Доработано для Vim Брамом Моленаром (Bram Moolenaar). 998 999 Перевод: 1000 Андрей Киселев <[email protected]>, 2002. 1001 Сергей Алёшин <[email protected]>, 2014. 1002 1003 Translators: 1004 Andrey Kiselev <[email protected]>, 2002. 1005 Sergey Alyoshin <[email protected]>, 2014. 1006 1007~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1008