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