помощ за редактора на vi

Съдържание

Съвет: Преди каквото и да е действие върху документа, въведете следната команда:

Започване и край на VI

vi име на файлОтворете името на файла за редактиране
vi -r име на файлОтворете последната запазена версия на името на файла след срив
vi име на файл файл2.Отворете име на файл, след това файл2. Преминете към следващия файл - :n
ZZ или :wq или :xЗапазете промените и излезте от VI
:wЗапазете промените в текущия файл
:w!Безусловно запазване на текущия файл
:w файлЗапазете текущия файл като файл
:q!Край на VI без запазване

Вмъкване на текст

азПоставете преди курсора
азВмъкване преди ред
аДобавяне след курсора
АДобавяне след ред
:r файлВмъкване на съдържанието на файла след текущия ред
В режим на въвеждане:
CTRL-i или TABВмъкнете дясно отместване по ширина на смяна
CTRL-dНамалете дясното изместване с ширината на преместване
CTRL-h или BackspaceИзтриване на предишния знак
CTRL-wИзтриване на предишната дума
CTRL-uИзтриване на предишния ред

Навигиране в текст

чНаляво
йНадолу
кнагоре
лточно
"стрелки"Придвижване през текста (работи бавно в големи файлове, може да не работи правилно в някои конфигурации).
wКъм следващата дума
bКъм началото на думата
^Към първия символ на низа, който не е интервал
+ илиДо първия знак на следващия ред
-Към първия знак без интервал от предишния ред
дДо края на думата
(Обратно към началото на офертата
)До края на изречението
Към началото на абзаца
>До края на параграфа
Забележка: параграфите са разделени с празен ред.
0 илиДо началото на реда
$До края на реда
1GКъм първия ред на файла
ЖДо последния ред на файла
зДо горния ред на екрана
ЛДо долния ред на екрана
CTRL-dПревъртете надолу половин екран
CTRL-fПревъртете екрана надолу
CTRL-uПревъртете нагоре половин екран
CTRL-bПревъртете екрана нагоре
%Към двойка скоби: ( ), < >, [ ]

Премахване на текст

Повечето команди за изтриване се образуват от знака d и командата за преместване. Например dw изтрива дума. Други команди за изтриване:

хИзтриване на текущия символ
nxИзтрийте n знака вдясно, като започнете от текущия
хИзтриване на знак отляво на курсора
nXИзтрийте n знака отляво на курсора
дд или :дИзтриване на текущия ред
„(a-z)ddИзрежете текущия ред в именуван буфер (a до z)

Копиране в клипборда

Подобно на командите за изтриване,повечето команди за копиране в буфер се състоят от y, последвано от команда за преместване. Например y$ буферира края на низ.

yy или :yКопиране на текущия ред
„(a-z)yyКопиране на текущия ред в именуван буфер (a до z)

Промяна на текста

Командите за промяна действат като команди за изтриване, последвани от преход към режим на въвеждане. Повечето от тях се състоят от знака c и командата за преместване. Например cw замества дума.

Поставяне от клипборда

стрПоставете текст от буфера след курсора
ППоставете текст от буфера преди курсора
"(a-z)p или "(a-z)PПоставете текст от буфера (a до z) след/преди текущия ред

Името на буфера може да бъде указано преди всяка команда за изтриване, промяна, копиране или поставяне. Префиксът е "c", където c е всеки малък знак. Например "adw изтрива думата и я поставя в буфер a. След това може да бъде поставен в текст с командата „ap.

Търсене/замяна на поднизове

/ улТърсене str напред от курсора
? улНамиране на str назад от курсора
нПовторете търсенето в същата посока
:n,ms/ str1 / str2 / опцТърсене на низ str1 от низ n до m (n и m могат да бъдат пропуснати); замени str1 със str2; с опции опт. Възможни опции: g - глобално, c - потвърждаване на замени (y - заместване, - не заместване), p - печат на променени редове
&Повторете последната команда :s
:g/ str1 /s/ str2 / str3 /Намерете низ, съдържащ str1, заменете str2 с str3
;Повторете търсенето
,Повторететърсене назад

Регулярни изрази

. (точка)Всеки знак, различен от "нов ред"
*0 или повече срещания на произволен знак
[. ]Всеки от посочените знаци
[^. ]Всеки знак, различен от посочените
\Строго в края на думата
^В началото на реда
$В края на реда
\(. \)Група условия
Стойността на n-тата група
\Отменете стойността на специален знак (например \$ ви позволява да търсите символа $)
\\Отмяна на специалното действие на символа \

Преди почти всяка команда можете да посочите броя на повторенията. Например 5dw ще изтрие 5 думи, а 3fe ще премести курсора напред до 3-то срещане на знака "e". По същия начин можете да действате с команди за вмъкване, например да вмъкнете 100 еднакви реда.

Имайте предвид, че опцията :set е въведена за включване на режима и :set няма опция за изключване. За да зададете предпочитания за всяко изпълнение на VI, в началната директория се създава .exrc файл, съдържащ командните данни без двоеточие пред него.

:setaiАвтоматичен отстъп (на предишния ред)
: задайте всичкоПоказване на всички режими
:set ebЗвуков сигнал за грешка
:set icИгнорирайте малки и големи букви при търсене
:комплект списъкПоказване на знаци за раздел (^l) и край на ред ($).
:set nu :задайте номерПоказване на номерата на редовете
: задаване на режим на шоуПоказване на текущия режим в долната част на екрана
:set showmatchМаркирайте сдвоени отварящи скоби, когато въвеждате затварящи скоби
:set waИзключете нормалната проверка преди запис
:set wm=nЗадайте размера на дясното поле за автоматично прехвърляне. За да деактивирате автоматичното прехвърляне n=0

  • Файлът ".exrc" в началната директория може да съдържа набор от макроси, използвани всеки път, когато VI се изпълнява (подобно на командите за дефиниране на макроси, но без двоеточие).
  • За да включите контролен знак, като ESC, в макрос, първо трябва да натиснете CTRL-v.
  • За да включите кавички (") в макрос, \ (обратна наклонена черта) се въвежда пред тях.
  • Клавиши, които не се използват във vi: K V Z g q v * = [ ] @ # и функционални клавиши.

Пример (маркирани са VI командите, които ще бъдат включени в макроса):

:map v/ I CTRL-vESC dwi Вие CTRL-vESC ESC

Макро действие: Когато натиснете v, намерете "I" (/I ESC), изтрийте думата (dw) и вмъкнете "You" (iYou ESC). CTRL-v е необходим за вмъкване на ESC кода