Напоследък забелязвам голям проблем – когато някой си скапе Х-а или по някаква друга причина му се наложи да редактира файл в конзола, отива страшно много време да се обясни как точно да стане това. Затова реших да напиша едно кратко ръководство как се ползва моят фаворит сред конзолните текстови редактори – vi (vim)
Vi е еди от първите “пълноправни” текстови редактори за unix базирани системи. На пръв поглед (а и на втори
) неговият интерфейс е доста груб и неудобен. Но това е само привидно – веднъж свикнете ли да го ползвате, ще видите колко бързо и лесно става всичко. Освен това в почти всяка една система този редактор е инсталиран по подразбиране.
И така, работата в текстовия редактор vi е разделена на два режима – режим за редактиране на текст и команден режим (на някои места командният режим също го делят на две – команден режим и режим 'ex'). При стартирането си vi автоматично влиза в команден режим (както показва името му, в този режим могат да се подават команди към текстовия редактор – аналог на това да 'чафкате' по менюта
). Стартирането на vi става като просто се извика в командния ред (може да приеме като параметър и име на файл който да бъде зареден за редактиране).
Влизането в режим на редактиране става посредством командата i (или с натискането на клавиш Insert). Така можете да пишете текст както във всеки друг текстов редактор. За да се върнете в команден режим натиснете клавиш Esc. Режимът за редактиране на текст може да работи по два начина: като вмъква текстa, който въвеждате (Insert), или като заменя стария текст (Replace). За да влезете в режим 'Replace', влезте в режим на редактиране с командата R вместо с комадата i. Ако работите в режим Insert и натиснете клавиш Insert, режимът ще се смени на 'Replace', а при следващото натискане на клавиш Insert, режимът ще се върне отново на 'Insert'. Aко желаете да смените само един знак от текста, който сте въвели използвайте командата r. Тя е аналог на командата R, само че заменя само един знак и се връща в команден режим (няма нужда да натискате Esc).
Има още два начина за влизане в режим за редактиране. Това са командите a и o. Чрез командата а добавяте текст към текущия (Append) ред. Командата o (Open) добавя нов ред (след текущия) като позиционира маркера в началото му.
Навигацията в документа се извършва по подобен начин (освен местенето на курсора със стрелките де
). С командата w придвижваме маркера на следващата дума, а с командата b - на предишната (допустими са и комбинации с числа – например 3w ще премести маркера три думи надясно, а командата 5b - с пет думи на ляво). За да позиционирате курсора в края на текущия ред, се използва командата $, а за да стигнете до началото на реда – 0 (нула). Ако желаете да стигнете до конкретен ред се ползва командата G (например 3G ще позиционира маркера на третия ред, а 15G - на 15-тият). С командите H (Home), M (Middle) и L (Last) можете да позиционирате маркера съответно в началото на документа, по средата или в края му. Ctrl + U и Ctrl + D, съответно, придвижват маркера една страница на горе или надолу.
Командите x, db, dw, d0, d$ и dd се използват за триене (изключвам клавишите Delete и BackSpace, които работят в режим на редактиране). С x се трие знака, върху който се намира курсорът, db трие текущата дума от мястото, където се намира курсора до началото й, а dw - до краят й. Съответно, d0 трие всичко от текущата позиция на курсора до началото на реда, а d$ - до неговия край. dd трие целия текущ ред.
Командата u е еквивалент на 'Undo' - отменя последната промяна която е направена в документа.
За да търсите някакъв текст се използва командата / следвана от текста, който желаете да намерите (например '/load “GLX”' ще позиционира маркера на първото място, на което срещне стринга 'load “GLX”')
Както споменах по-нагоре. в команден режим могат да се подават два типа команди: тези които касаят работата със самия документ (тези горе) и други, които касаят функции на самия текстов редактор ('ex' режимът). Тези команди започват с двуеточие. Най-важната команда за сега е :help. Както сигурно се сещате, тя служи за извикване на помощна информация за работата с текстовия редактор (тези команди горе са само една малка част от тези, които поддържа vi).
За да запишете промените които сте направили по текстовия файл, се използва командата :w (например ':w file.txt' или само ':w', ако сте отворили някой файл за редактиране и не желаете да го записвате под друго име). Също така е възможно да използвате командата :sav с име на нов файл като аналог на 'Save As' при редакторите с GUI интерфейс.
За да отворите нов файл, се ползва командтата :e следвана от името на файла. И накрая, за да прекратите работата си с текстовия редактор се ползва командата :q. Aко по някакви причини желаете да прекратите работата си с редактора или просто да отворите друг файл, без да запазвате промените в този, с който сте работили до сега или редактирате 'Read Only' файл, освен командата която искате да изпълните трябва да се добави и едно ! (удивителна) – за да покажете на vi, че знаете какво правите (например :q! или :w!). Също така, можете да ползвате и :wq, за да запазите промените и да прекратите работата си с vi (ако желаете да изпълните някаква команда на шел-a, ползвайте командата :! – например :! ls)
Това съвсем не са всички команди, които приема vi. Той може да редактира няколко файла едновременно, поддържа функции като 'cut', 'copy' и 'paste', има синтактичен анализатор и още доста други неща. Но това за сега е напълно достатъчно, за да си смените DNS сървърите например или пък да изтриете промените, които сте направили по конфигурацията на X сървъра в съответните текстови файлове.
Редактирано от stumps на Ноември 28 2005, 16:54
Vi е еди от първите “пълноправни” текстови редактори за unix базирани системи. На пръв поглед (а и на втори

И така, работата в текстовия редактор vi е разделена на два режима – режим за редактиране на текст и команден режим (на някои места командният режим също го делят на две – команден режим и режим 'ex'). При стартирането си vi автоматично влиза в команден режим (както показва името му, в този режим могат да се подават команди към текстовия редактор – аналог на това да 'чафкате' по менюта

Код:
vi file.txt
Влизането в режим на редактиране става посредством командата i (или с натискането на клавиш Insert). Така можете да пишете текст както във всеки друг текстов редактор. За да се върнете в команден режим натиснете клавиш Esc. Режимът за редактиране на текст може да работи по два начина: като вмъква текстa, който въвеждате (Insert), или като заменя стария текст (Replace). За да влезете в режим 'Replace', влезте в режим на редактиране с командата R вместо с комадата i. Ако работите в режим Insert и натиснете клавиш Insert, режимът ще се смени на 'Replace', а при следващото натискане на клавиш Insert, режимът ще се върне отново на 'Insert'. Aко желаете да смените само един знак от текста, който сте въвели използвайте командата r. Тя е аналог на командата R, само че заменя само един знак и се връща в команден режим (няма нужда да натискате Esc).
Има още два начина за влизане в режим за редактиране. Това са командите a и o. Чрез командата а добавяте текст към текущия (Append) ред. Командата o (Open) добавя нов ред (след текущия) като позиционира маркера в началото му.
Навигацията в документа се извършва по подобен начин (освен местенето на курсора със стрелките де

Командите x, db, dw, d0, d$ и dd се използват за триене (изключвам клавишите Delete и BackSpace, които работят в режим на редактиране). С x се трие знака, върху който се намира курсорът, db трие текущата дума от мястото, където се намира курсора до началото й, а dw - до краят й. Съответно, d0 трие всичко от текущата позиция на курсора до началото на реда, а d$ - до неговия край. dd трие целия текущ ред.
Командата u е еквивалент на 'Undo' - отменя последната промяна която е направена в документа.
За да търсите някакъв текст се използва командата / следвана от текста, който желаете да намерите (например '/load “GLX”' ще позиционира маркера на първото място, на което срещне стринга 'load “GLX”')
Както споменах по-нагоре. в команден режим могат да се подават два типа команди: тези които касаят работата със самия документ (тези горе) и други, които касаят функции на самия текстов редактор ('ex' режимът). Тези команди започват с двуеточие. Най-важната команда за сега е :help. Както сигурно се сещате, тя служи за извикване на помощна информация за работата с текстовия редактор (тези команди горе са само една малка част от тези, които поддържа vi).
За да запишете промените които сте направили по текстовия файл, се използва командата :w (например ':w file.txt' или само ':w', ако сте отворили някой файл за редактиране и не желаете да го записвате под друго име). Също така е възможно да използвате командата :sav с име на нов файл като аналог на 'Save As' при редакторите с GUI интерфейс.
За да отворите нов файл, се ползва командтата :e следвана от името на файла. И накрая, за да прекратите работата си с текстовия редактор се ползва командата :q. Aко по някакви причини желаете да прекратите работата си с редактора или просто да отворите друг файл, без да запазвате промените в този, с който сте работили до сега или редактирате 'Read Only' файл, освен командата която искате да изпълните трябва да се добави и едно ! (удивителна) – за да покажете на vi, че знаете какво правите (например :q! или :w!). Също така, можете да ползвате и :wq, за да запазите промените и да прекратите работата си с vi (ако желаете да изпълните някаква команда на шел-a, ползвайте командата :! – например :! ls)
Това съвсем не са всички команди, които приема vi. Той може да редактира няколко файла едновременно, поддържа функции като 'cut', 'copy' и 'paste', има синтактичен анализатор и още доста други неща. Но това за сега е напълно достатъчно, за да си смените DNS сървърите например или пък да изтриете промените, които сте направили по конфигурацията на X сървъра в съответните текстови файлове.
Редактирано от stumps на Ноември 28 2005, 16:54