Редактор vi в UNIX
Редактор по умолчанию, который поставляется с операционной системой 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/