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