Редактор vi в UNIX

Опубликовано: 16 Февраля, 2022

Редактор по умолчанию, который поставляется с операционной системой UNIX, называется vi (визуальный редактор). Используя редактор vi, мы можем редактировать существующий файл или создать новый файл с нуля. мы также можем использовать этот редактор для чтения текстового файла.
Синтаксис:

vi имя файла


Вход:


Выход:

Режимы работы в редакторе vi В vi есть три режима работы:

  • Командный режим: когда vi запускается, он находится в командном режиме. В этом режиме vi интерпретирует любые символы, которые мы вводим, как команды и, таким образом, не отображает их в окне. Этот режим позволяет нам перемещаться по файлу, а также удалять, копировать или вставлять фрагмент текста.
    Чтобы войти в командный режим из любого другого режима, необходимо нажать клавишу [Esc] . Если мы нажмем [Esc], когда уже находимся в командном режиме, vi издаст звуковой сигнал или мигнет на экране.
  • Режим вставки: этот режим позволяет вставлять текст в файл. Все, что вводится в этом режиме, интерпретируется как ввод и, наконец, помещается в файл. Vi всегда запускается в командном режиме. Чтобы ввести текст, вы должны находиться в режиме вставки. Чтобы перейти в режим вставки, просто введите i. Чтобы выйти из режима вставки, нажмите клавишу Esc, которая вернет вас в командный режим.
  • Режим последней строки (режим выхода): режим строки вызывается путем ввода двоеточия [:], в то время как vi находится в командном режиме. Курсор переместится на последнюю строку экрана, и vi будет ждать команды. Этот режим позволяет вам выполнять такие задачи, как сохранение файлов, выполнение команд.

Запуск редактора vi

Вы можете начать использовать редактор vi следующим образом:

Commands and their Description

  • vi filename: Creates a new file if it already not exist, otherwise opens existing file.
  • vi -R filename : Opens an existing file in read only mode.
  • view filename : Opens an existing file in read only mode.

Перемещение внутри файла (навигация):
Чтобы перемещаться по файлу, не затрагивая текст, необходимо находиться в командном режиме (дважды нажмите Esc). Вот некоторые из команд, которые можно использовать для перемещения по одному персонажу за раз.

Commands and their Description

  • k : Moves the cursor up one line.
  • j : Moves the cursor down one line.
  • h : Moves the cursor to the left one character position.
  • l : Moves the cursor to the right one character position.
  • 0 or | : Positions cursor at beginning of line.
  • $ : Positions cursor at end of line.
  • W : Positions cursor to the next word.
  • B : Positions cursor to previous word.
  • ( : Positions cursor to beginning of current sentence.
  • ) : Positions cursor to beginning of next sentence.
  • H : Move to top of screen.
  • nH : Moves to nth line from the top of the screen.
  • M : Move to middle of screen.
  • L : Move to bottom of screen.
  • nL : Moves to nth line from the bottom of the screen.
  • colon along with x : Colon followed by a number would position the cursor on line number represented by x.

Команды управления (прокрутка): вместе с клавишей управления можно использовать следующие полезные команды:

Commands and their Description:

  • CTRL+d : Move forward 1/2 screen.
  • CTRL+f : Move forward one full screen.
  • CTRL+u : Move backward 1/2 screen.
  • CTRL+b : Move backward one full screen.
  • CTRL+e : Moves screen up one line.
  • CTRL+y : Moves screen down one line.
  • CTRL+u : Moves screen up 1/2 page.
  • CTRL+d : Moves screen down 1/2 page.
  • CTRL+b : Moves screen up one page.
  • CTRL+f : Moves screen down one page.
  • CTRL+I : Redraws screen.

Редактирование и вставка в файлы (ввод и замена текста): чтобы редактировать файл, нам нужно находиться в режиме вставки. Есть много способов войти в режим вставки из командного режима.

  • i : Inserts text before current cursor location.
  • I : Inserts text at beginning of current line.
  • a : Inserts text after current cursor location.
  • A : Inserts text at end of current line.
  • o : Creates a new line for text entry below cursor location.
  • O : Creates a new line for text entry above cursor location.
  • r : Replace single character under the cursor with the next character typed.
  • R : Replaces text from the cursor to right.
  • s : Replaces single character under the cursor with any number of characters.
  • S :Replaces entire line.

Удаление символов: вот список важных команд, которые можно использовать для удаления символов и строк в открытом файле.

  • X Uppercase: Deletes the character before the cursor location.
  • x Lowercase : Deletes the character at the cursor location.
  • Dw : Deletes from the current cursor location to the next word.
  • d^ : Deletes from current cursor position to the beginning of the line.
  • d$ : Deletes from current cursor position to the end of the line.
  • Dd : Deletes the line the cursor is on.

Копирование и прошлые команды: копируйте строки или слова из одного места и вставляйте их в другое место с помощью следующих команд.

  • Yy : Copies the current line.
  • 9yy : Yank current line and 9 lines below.
  • p : Puts the copied text after the cursor.
  • P : Puts the yanked text before the cursor.

Команды сохранения и выхода из бывшего режима: необходимо нажать клавишу [Esc], а затем двоеточие (:) перед вводом следующих команд:

  • q : Quit
  • q! : Quit without saving changes i.e. discard changes.
  • r fileName : Read data from file called fileName.
  • wq : Write and quit (save and exit).
  • w fileName : Write to file called fileName (save as).
  • w! fileName : Overwrite to file called fileName (save as forcefully).
  • !cmd : Runs shell commands and returns to Command mode.

Поиск и замена в (ex Mode): vi также имеет мощные возможности поиска и замены. Формальный синтаксис поиска:

: s / строка

Например, предположим, что мы хотим найти в каком-то тексте строку «geeksforgeeks». Введите следующее и нажмите ENTER:

: s / geeksforgeeks

Вход:

Результат: поиск первого совпадения для «geeksforgeeks» в тексте будет выделен.

Синтаксис замены одной строки другой строкой в текущей строке:

: s / шаблон / заменить / 

Здесь «шаблон» представляет старую строку, а «заменить» представляет новую строку. Например, чтобы заменить каждое вхождение слова «geeks» в строке с типом «geeksforgeeks»:

: s / geeksforgeeks / gfg / 

Вход:

Выход:

Синтаксис замены каждого вхождения строки во всем тексте аналогичен. Единственное отличие - это добавление «%» перед «s»:

:% s / шаблон / заменить /

Таким образом, повторение предыдущего примера для всего текста, а не только для одной строки:

:% s / gfg / geeksforgeeks /

Ссылка: http://www.linfo.org/vi/