помощ за редактора на 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 кода