Обе стране последње ревизијеПретходна ревизијаСледећа ревизија | Претходна ревизијаСледећа ревизијаОбе стране следеће ревизије |
sr:slackbook:vi [2013/08/28 15:16 (UTC)] – slackmuz | sr:slackbook:vi [2013/09/19 22:28 (UTC)] – slackmuz |
---|
Укратко, **//vi//** је један од најстаријих и најмоћнијих уређивача текста који се користи и данас. Он је омиљен код администратора, програмера, хобиста и осталих корисника широм света. Заправо, скори цела ова књига је написана уз помоћ **//vi//** уређивача текста; једино следеће поглавље о **//Емаксу//** је написано //Емаксом//. | Укратко, **//vi//** је један од најстаријих и најмоћнијих уређивача текста који се користи и данас. Он је омиљен код администратора, програмера, хобиста и осталих корисника широм света. Заправо, скори цела ова књига је написана уз помоћ **//vi//** уређивача текста; једино следеће поглавље о **//Емаксу//** је написано //Емаксом//. |
| |
| Потребно је мало дубље објашњење како би се схватило шта је **//vi//** данас, како Слаквер Линукс технички не садржи **//vi//**. Уместо тога, Слаквер нуди два **//vi//** клона: **//elvis//**(1) и **//vim//**(1). Ови клонови садрже многе додатне функционалности у односу на **//vi//**, као што су истицање синтаксе, режими бинарног уређивања и подршку за мрежу. Нећемо ићи много дубоко по питању детаља везано за ове карактеристике. Подразумевано, ако покренете **//vi//** у Слаквер Линуксу, користићете **//elvis//**, тако да ће се сви примери у овом поглављу односити на коришћење поменутог клона. Уколико сте раније користили другу Линукс дистрибуцију, сигурно сте се упознали са **//vim//**-јем. Уколико је тако, можда ћете желети да промените симболички линк за ///usr/bin/vi// да указује на ///usr/bin/vim//, или да додате алиас у покретачке скрипте шкоњке. Сматра се да је **//vim//** много богатији функцијама од **//elvis//**-а, али је **//elvis//** много мањи програм и садржи све оне функције које ће већини корисника бити потребне. |
| |
| **//vi//** је веома моћан, а у исто време гломазан и захтеван за нове кориснике који желе да га науче. Ипак, овладавање **//vi//**-јем је важна вештина за било ког администратора који држи до себе, јер је **//vi//** укључен у скоро сваку Линукс дистрибуцију, сваки БСД систем, и сваки Јуникс систем који постоји. Чак је укључен и у МекОС X. Једном, када научите **//vi//**, нећете имати потребу за изучавањем других уређивача текста, како бисте радили на било ком од ових система. Заправо, **//vi//** клонови су портовани на Мајкрософт Виндоуз системе, тако да га и тамо можете користити. |
| |
| ===== Различити режими у vi уређивачу ===== |
| |
| Нови корисници су углавном фрустрирани када први пут користе **//vi//**. Када се позове без аргумената, **//vi//** ће приказати овакав екран: |
| |
| <code> |
| |
| ~ |
| ~ |
| ~ |
| ~ |
| ~ |
| ~ |
| ~ |
| ~ |
| ~ |
| ~ |
| ~ |
| Command |
| </code> |
| |
| Овде ће корисник почети да куца очекујући да се тастери које је притиснуо појаве у документу. Уместо тога, десиће се нешто сасвим чудно. Разлог за ово је једноставан. **//vi//** има различите оперативне //режиме//. Постоји командни режим (енгл. command mode)и режим уписивања текста (енгл. insert mode). Подразумевани је командни режим; у овом режиму свака команда (тастер) представља одређену акцију као што је померање курсора, брисање текста, умножавање текста, претрага итд. |
| |
| ===== Отварање, снимање и напуштање ===== |
| |
| У реду, дакле одлучили сте се да учите коришћење **//vi//**-ја. Прва ствар коју треба да научите је како да отворите и снимите документе. Отварање фајлова је прилично лак посао. Једноставно укуцајте име фајла као аргумент у командној линији и **//vi//** ће га учитати. На пример, |
| |
| <code>vi chapter_11.xml</code> |
| |
| отвара фајл //chapter_11.xml// и учитава његов садржај на екрану. Али шта кад завршимо са документом и желимо да га снимимо? То можемо учинити из командног режима коришћењем команде //:w//. У командном режиму притиском на тастер <key>':'</key> позиционирате курсор на само дно прозора и тиме добијате могућност уношења потребних команди. (Ово је стручно познато као ex-режим по цењеној **//ex//** апликацији коју нећемо овде документовати). Команда за снимање тренутног рада је //:w//. Када буде извршена, **//vi//** ће исписати промене начињене у баферу у фајл. Уколико желите да отворите други документ, једноставно користите команду //:e други_документ// и **//vi//** ће га отворити. Ако сте начинили измене у баферу и нисте их снимили, //:e// се неће извршити и штампаће поруку упозорења у доњој линији. Можете заобићи ово упозорење //:e!// командом. Многе команде се могу //присилити// додавањем знака <key>'!'</key>. Ово говори **//vi//** уређивачу да желите да одбаците измене које сте начинили у баферу и да отворите нови документ. |
| |
| Али шта ако ми се не свиђају измене и желим да напустим документ или да почнем испочетка? То се, такође, лако постиже. Извршавањем команде //:e!// без аргумената поново отварате тренутни документ испочетка. Напуштање **//vi//** уређивача је исто тако крајње једноставно: извршавањем //:q// команде уколико нисте начинили измене у баферу, или //:q!// команде уколико желите да одбаците начињене измене и напустите **//vi//** уређивач. |
| |
| ===== Кретање ===== |
| |
| Новим корисницима је најтежа ствар за учење управо кретање кроз **//vi//**. **//vi//** традиционално не користи тастере стрелице за померање курсора, мада је то у Слакверу опција. Уместо тога, кретање је само још једна команда покренута у командном режиму. Разлог за ово је крајње једноставан. **//vi//** је старији од тастера стрелица на тастатури. Зато је за померање курсора морало да се изабере неколико преосталих тастера и одабрани су тастери који се при слепом куцању користе као орјентир за десну руку, а то су <key>'h'</key>, <key>'j'</key>, <key>'k'</key>, и <key>'l'</key>. Овим тастерима се помера курсор увек кад је **//vi//** у командном режиму. Ово је мала табела како бисте схватили како ови тастери функционишу. |
| |
| ^Command ^ Result ^ |
| |h|Помера курсор за једно место лево| |
| |j|Помера курсор за једно место доле| |
| |k|Помера курсор за једно место горе| |
| |l|Помера курсор за једно место десно| |
| |
| Кретање је мало моћније од овог простог примера. Попут многих командних тастера, овим тастерима за кретање могу бити додати нумерички аргументи. На пример, **10j** ће померити курсор 10 линија доле. Можете се, такође, померити на крај или почетак тренутне линије тастером <key>'$'</key> односно <key>'^'</key>. |
| |
| ===== Уређивање документа ===== |