Редактор VI. Основные команды.

Каждый, кто впервые сталкивается с операционными системами семейства Unix — знакомятся с ним 🙂 Загадочным редактором, в котором невозможно ничего написать, изменить, не работают стрелки и т.д. Да, это Vi редактор, который начал свой путь в далеком 1976 году и до сегодня является одним из самых популярных среди системных администраторов (Сейчас на меня набросятся сторонники Emacs, поскольку спор между сторонниками vi и emacs является классическим примером «религиозных войн»). Собственно я больше люблю его более современный клон Vim.
Редактор VI имеет три режима:
1. Командный — в этом режиме можно перемещаться по файлу и выполнять редактирующие команды над текстом. Команды вызываются ОБЫЧНЫМИ ЛАТИНСКИМИ БУКВАМИ.
2. Ввода текста — в этом режиме обычные латинские буквы будут вставляться в текст.
3. Режим строчного редактора ED используется для управления файлами (сохранить файл, зачитать файл и т.д.)

Для того, что бы что-то написать, вам нужно: перейти в режим ввода (нажатием латинской i ), написать текст, выйти из режима ввода (клавиша Esc), перейти в командный режим (клавиша :) и ввести команду (сохранить и выйти, будет так: :wq). Страшно? Тогда Вам дальше не стоит этого читать! Лучше пользуйтесь текстовый редактор ee (Easy Editor).

Вы все таки решились?! 🙂
РЕЖИМЫ: Ввода == ESC ====> Командный == :Q ==> Редактора ed
^                  |     ^                |
+----aAiIcCrRs <---+     +----- vi -------+

    ПЕРЕМЕЩЕНИЕ ПО ФАЙЛУ

{стрелки},hjkl
^U/^D   табуляция вверх/вниз
^F/^B   страницу вниз/вверх
^E/^Y   подвинуться на строку вниз/вверх
w/b/e   вперед/назад на слово/в конец слова
W/B/E   вперед/назад на слово/в конец опробеленного слова
(/)    назад/вперед на предложение
{/}    назад/вперед на абзац
[[/]]   назад/вперед на функцию или секцию
%       найти парную скобку ( или {
{n}G    на строку {n}
{n}|    в колонку {n}
H/M/L   в начало/середину/конец экрана
z/z./z- текущую строку в начало/середину/конец экрана
^/$/0   начало/конец строки

    РЕДАКТИРОВАНИЕ ТЕКСТА

x       уничтожить символ
X       забой
J       склеить строки

    В РЕЖИМЫ ВВОДА

a/i / A/I       вставка за/перед _ / концом/началом строки
R       режим замены
r       буква на букву
s       буква на буквы
o/O     вставить строку под/над _
C$      Заменить конец строки

    ИНФОРМАЦИЯ

^G      о текущем файле и строке

    ОТКАТКА

u       откатка (одна)
^L/^R   перерисовать

    РЕДАКТИРОВАНИЕ В РЕЖИМЕ ВВОДА

ESC     вернуться в командный режим
Забой   Забой
^W/^U   Убрать слово/Убрать строку
^V      Вставить CRTL-символ[ы]

    ОПЕРАТОРЫ С ПОЗИЦИОНИРОВАНИЕМ

p/P     вспомнить фрагмент за/перед _

{n} ["буква_буфер] "команда" {m}"команда позиционирования"
весь фрагмент запоминается!    или повтор команды для строки
d       уничтожать фрагмент
y       запоминать фраг
c       заменить фрагмент (==> в режим ввода )
</> сдвинуть влево/вправо
! команда       пропустить фрагмент через фильтр

    ПРИМЕРЫ

7yy     запомнить 7 строк в неименованном буфере
"aAd{   добавить к буф a с удалением от _ до начала абзаца
!G sort отсортировать строки от курсора и до конца

    "МАКРОКОМАНДЫ"

:map  клавиша_имя_макро тело_макрокоманды  {CR}
:map! клавиша_имя_макро тело_макрокоманды  {CR}  - в режиме ввода
:ab   сокращение        сокращаемый_текст  {CR}  - в режиме ввода

    ПОИСК

?строка         искать вверх
/строка         искать вниз
n               повторить поиск
N               вернуться на последнюю найденную строку

    ПОИСК_С_ЗАМЕНОЙ

:s/рег_выраж/замена/gc   - глобальный с подтверждением
:Q/vi                      вход / выход в режим ed
:g/строка                - поставить визуальный фильтр
:+5                        движение по файлу

    РЕДАКТОР_ED. Вход ":" (надолго "Q") Выход "CR" / (VI)

^^      Перейти в альтернативное окно
:[1,$] w [>>] [file]   записать в file [от 1 до $ строки]
:q[!]  закончить сеанс [форсированно]
:[15]r [file] или [!komanda]   вставить после [15] стр
:e     редактировать новый файл
:n     редактировать следующий файл
:sh    выйти в Shell
:! команда  запустить на выполнение Shelloм

    УСТАНОВКА РЕЖИМОВ VI

:set nu / nonu   нумеровать/ненумеровать строки
:set smd{CR}     показывать текущий режим
EXINIT="конфигурационные команды"       - переменная окружения
.exrc                           - файл с командами конфигурации

РЕЖИМЫ: Ввода == ESC ====> Командный == :Q ==> Редактора ed
^                  |     ^                |
+----aAiIcCrRs <---+     +----- vi -------+

    ПЕРЕМЕЩЕНИЕ ПО ФАЙЛУ


{стрелки},hjkl
^U/^D   табуляция вверх/вниз
^F/^B   страницу вниз/вверх
^E/^Y   подвинуться на строку вниз/вверх
w/b/e   вперед/назад на слово/в конец слова
W/B/E   вперед/назад на слово/в конец опробеленного слова
(/)    назад/вперед на предложение
{/}    назад/вперед на абзац
[[/]]   назад/вперед на функцию или секцию
%       найти парную скобку ( или {
{n}G    на строку {n}
{n}|    в колонку {n}
H/M/L   в начало/середину/конец экрана
z/z./z- текущую строку в начало/середину/конец экрана
^/$/0   начало/конец строки

    РЕДАКТИРОВАНИЕ ТЕКСТА


x       уничтожить символ
X       забой
J       склеить строки

    В РЕЖИМЫ ВВОДА


a/i / A/I       вставка за/перед _ / концом/началом строки
R       режим замены
r       буква на букву
s       буква на буквы
o/O     вставить строку под/над _
C$      Заменить конец строки

    ИНФОРМАЦИЯ


^G      о текущем файле и строке

    ОТКАТКА


u       откатка (одна)
^L/^R   перерисовать

    РЕДАКТИРОВАНИЕ В РЕЖИМЕ ВВОДА


ESC     вернуться в командный режим
Забой   Забой
^W/^U   Убрать слово/Убрать строку
^V      Вставить CRTL-символ[ы]

    ОПЕРАТОРЫ С ПОЗИЦИОНИРОВАНИЕМ


p/P     вспомнить фрагмент за/перед _

{n} ["буква_буфер] "команда" {m}"команда позиционирования"
весь фрагмент запоминается!    или повтор команды для строки
d       уничтожать фрагмент
y       запоминать фраг
c       заменить фрагмент (==> в режим ввода )
</> сдвинуть влево/вправо
! команда       пропустить фрагмент через фильтр

    ПРИМЕРЫ


7yy     запомнить 7 строк в неименованном буфере
"aAd{   добавить к буф a с удалением от _ до начала абзаца
!G sort отсортировать строки от курсора и до конца

    "МАКРОКОМАНДЫ"


:map  клавиша_имя_макро тело_макрокоманды  {CR}
:map! клавиша_имя_макро тело_макрокоманды  {CR}  - в режиме ввода
:ab   сокращение        сокращаемый_текст  {CR}  - в режиме ввода

    ПОИСК


?строка         искать вверх
/строка         искать вниз
n               повторить поиск
N               вернуться на последнюю найденную строку

    ПОИСК_С_ЗАМЕНОЙ


:s/рег_выраж/замена/gc   - глобальный с подтверждением
:Q/vi                      вход / выход в режим ed
:g/строка                - поставить визуальный фильтр
:+5                        движение по файлу

    РЕДАКТОР_ED. Вход ":" (надолго "Q") Выход "CR" / (VI)


^^      Перейти в альтернативное окно
:[1,$] w [>>] [file]   записать в file [от 1 до $ строки]
:q[!]  закончить сеанс [форсированно]
:[15]r [file] или [!komanda]   вставить после [15] стр
:e     редактировать новый файл
:n     редактировать следующий файл
:sh    выйти в Shell
:! команда  запустить на выполнение Shelloм

    УСТАНОВКА РЕЖИМОВ VI


:set nu / nonu   нумеровать/ненумеровать строки
:set smd{CR}     показывать текущий режим
EXINIT="конфигурационные команды"       - переменная окружения
.exrc                           - файл с командами конфигурации

Киевская городская библиотека

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.