Запомняне

» Здравейте
[ Вход :: Регистриране ]
 » Начало » Li Форуми » Li Статии » Полезно » Работа с VIM (конзолен текстов редактор)
  • Страница 1 от 1 Skip to Page:
  • 1
Тема: Работа с VIM (конзолен текстов редактор)
Мнение #1 Skip to the next post in this topic.
Написано на: Ноември 28 2005, 13:30
mcwolf
 

No avatar chosen




Група: Li gurus
Мнения: 1489
Регистриран: Април 2005

Оценка: 5

Offline
Напоследък забелязвам голям проблем – когато някой си скапе Х-а или по някаква друга причина му се наложи да редактира файл в конзола, отива страшно много време да се обясни как точно да стане това. Затова реших да напиша едно кратко ръководство как се ползва моят фаворит сред конзолните текстови редактори – vi (vim)

Vi е еди от първите “пълноправни” текстови редактори за unix базирани системи. На пръв поглед (а и на втори :)) неговият интерфейс е доста груб и неудобен. Но това е само привидно – веднъж свикнете ли да го ползвате, ще видите колко бързо и лесно става всичко. Освен това в почти всяка една система този редактор е инсталиран по подразбиране.

И така, работата в текстовия редактор vi е разделена на два режима – режим за редактиране на текст и команден режим (на някои места командният режим също го делят на две – команден режим и режим 'ex'). При стартирането си vi автоматично влиза в команден режим (както показва името му, в този режим могат да се подават команди към текстовия редактор – аналог на това да 'чафкате' по менюта :)). Стартирането на 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) добавя нов ред (след текущия) като позиционира маркера в началото му.

Навигацията в документа се извършва по подобен начин (освен местенето на курсора със стрелките де :)). С командата 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
Контакти:  mcwolf

  • AOL  AOL:
  • ICQ  ICQ:
  • MSN  MSN:
  • YIM  Yahoo IM:
WEB  
Мнение #2 Skip to the next post in this topic.
Skip to the previous post in this topic. Написано на: Януари 05 2007, 02:28
nikolavp
 

Avatar




Група: Li maniacs
Мнения: 560
Регистриран: Юли 2006

Оценка: 4

Offline
Цък Обърнете внимание на пищова накрая.Като не ме мързи толкова ще го прерисувам на български :)

Контакти:  nikolavp

  • AOL  AOL:
  • ICQ  ICQ:
  • MSN  MSN:
  • YIM  Yahoo IM:
WEB  
Мнение #3 Skip to the next post in this topic.
Skip to the previous post in this topic. Написано на: Април 16 2007, 22:48
taipanbg
 

No avatar chosen




Група: Li fans
Мнения: 22
Регистриран: Април 2007

Оценка: няма

Offline
ne sum go pisal az no dano vi svarshi rabota

Текстов редактор vi

Cъществуват много текстови редактори, които може да се инсталират на дадена система под UNIX. Редакторът vi е стандартен при разпространението на всички версии на системата UNIX и основните познания за него са важни за системните администратори. Текстовият редактор е загадъчно нещо, неговите предимства (или недостатъци) могат да предизвикат големи дебати покрай машината за кафе в офиса. Независимо дали обичате, или мразите редактора vi, все едно — ще се наложи да го използвате. Този бърз справочник може да помогне при бързото редактиране за много кратко време.
Режими на работа на vi
Съществуват два основни режима, в които работи vi — команден режим и режим за вход. Командният режим дава възможност да се извършат редица операции като преместване на показалеца, прелистване на страници, търсене на низове, запис на файлове на диска и други подобни. Това е режимът на работа, който е в основата на този справочник. Режимът на вход е този, при който във vi се въвеждат данни (под формата на текст) в определен файл. Първо може да ви изглежда странно, но vi не разполага c командно меню и не позволява команди c мишка, c които да се редактира текст. Този редактор е създаден за използване от обикновените терминали, които са навсякъде около нас. Единственият интерфейс, c който може да се извършва редакцията, е клавиатурата, vi се командва единствено от бутоните, c които разполага всеки тер-минатт: всички бутони, включително и Esc.
Изпълнението на командите на vi зависи от това дали са въведени c малки, или големи букви
Когато се зарежда файл, по подразбиране редакторът vi е в команден режим. За да започнете да редактирате, трябва да влезете в режим на редактиране c различни мнемонични команди.
Редактиране на текст
Таблица D-1 показва командите, които се използват при въвеждане на текст във файл.
Таблица D-1 Команди във vi за въвеждане на текст
Команда Команден файл
i Въвежда текст преди текущ символ
I Въвежда текст в начало на ред
а Добавя текст след текущ символ
А Добавя текст към края на ред
o Отваря ред c текст след текущия ред
0 Отваря ред c текст преди текущия ред
R Въвежда текст върху определен ред
След въвеждането на текста показалецът може да се мести от едно място на друго чрез въвеждане на редактора в команден режим, чрез натискане на клавиша Esc. Таблица D-2 показва командите за преместване на показалеца по екрана.
Таблица D-2
Команди във vi за преместване на показалеца
Команди Команден файл
j, I Надолу един ред
к, н Нагоре един ред
h, Наляво един символ
1, o Надясно един символ
w Една дума надясно
W Една празна дума надясно
b Една дума наляво
В Една празна дума наляво
0 Към началото на реда
$ Към края на реда
( В начало на изречение

) В края на изречение
{ В начало на параграф
} В края на абзац
Ctrl-F Страница напред
Ctrl-B Страница назад
nG Към ред номер n
G Към последен ред
Командите от предходните таблици могат да бъдат разширявани c използването на числови аргументи пред самите команди. Например 5j премества показалеца 5 реда надолу наведнъж. Други команди позволяват същото. Таблица D-3 показва команди на vi за замяна на текст.
Таблица D-3 Команди на vi за замяна на текст
Команди Команден файл
r Заменя един символ
c Променя текст, докато не се натисне клавиш Esc
cw Променя следваща дума
cnw Променя следващите n на брой думи
Съществуват голям брой буфери във vi, които могат да се използват за копиране и поместване на определен текст. Буферът по подразбиране, който е винаги достъпен, и буферите от а до z може да бъдат използвани по желание. (За такъв „примитивен11 текстов редактор неговите буфери го отличават от по-мощните текстови редактори на пазара, които имат само един Clipboard за съхраняване на текст!;) Таблица D-4 показва команди, които се използват при копиране на текст в буфера.
Таблица D-4 Команди на vi за копиране на текст
Команди Команден файл
yy Записва ред от текста в буфера
yw Записва следваща дума в буфера
ynw Записва следващите n на брой думи в буфера
p Ако основният буфер съдържа ред, отваря реда
след текущия и прехвърля съдържанието в него. Ако съдържа дума, прехвърля съдържанието на основния буфер надясно от показалеца

P Ако основният буфер съдържа ред, отваря реда
преди текущия и прехвърля съдържанието в него. Ако съдържа дума, прехвърля съдържанието на основния буфер наляво от показалеца.
Командите за запис и прехвърляне могат да се използват за престване или повторно прехвърляне от определеният буфер:
ly Записва текст в буфер c име 1
pl Прехвърля текст от буфер c име 1
Запис на файлове
Таблица D-5 показва командите, които се използват за запис на файлове и изход от редактора vi.
Таблица D-5 Команди на vi за запис на файлове и изход от програмата
Команди Описание
zz записиизход
:w име_на_файл запис на файл
:w запис на файл
:x запис (ако файлът е бил променен) и изход
:q! изход без запис
:q изход от vi
Вярвате или не, vi е доста мощен редактор, c много възможности, като функции за търсене и подмяна, въвеждане на макроси, възможности за въвеждане и изпращане на други команди под UNIX в текстовия буфер, и други, които ще оставим да откриете сами. Понякога няколкото основни команди, показани в това приложение, са напълно достатъчни за поддръжка на файловете за произволна система под UNIX.
Съществуват много места в Интернет, които са свързани c редактора vi. Ето някои от тях:
vi Tutorial: http: //ecn.www.ecn.purdue .edu/ECN/Documents/VI vi Lover's Home Page: http: //www. cs .vu.nl/~tmgil/vi .html
Контакти:  taipanbg
WEB  
Мнение #4
Skip to the previous post in this topic. Написано на: Януари 08 2009, 20:32

No avatar chosen




Група: Li fans
Мнения: 1
Регистриран: Януари 2009

Оценка: няма

Offline
Евала за тоя текстов редактор. Много хубаво и точно написано, всичко разбрах.  :)
Контакти:  filosof

  • AOL  AOL:
  • ICQ  ICQ:
  • MSN  MSN:
  • YIM  Yahoo IM:
WEB  
Общо 3 отговор(а) от Ноември 28 2005, 13:30 до сега
  • Страница 1 от 1 Skip to Page:
  • 1
 » Начало » Li Форуми » Li Статии » Полезно » Работа с VIM (конзолен текстов редактор)

© 2014 Linux Index Project
Powered by iF 1.0.0 © 2006 ikonForums