2.8 Текстовый редактор Vi

У редактора Vi несколько режимов работы (и в этом состоит его главное отличие от других редакторов):

  • «Командный режим» – перемещение по файлу, стирание текста и другие редактирующие функции, переход в него из любого другого режима <ESC>, иногда 2 раза;
  • «Режим ввода» – ввод текста. Стирание и ввод текста происходит в двух разных режимах;
  • «Режим строчного редактора ED» – более глобальные операции над текстом/файлом/редактором (записать файл, настроить редактор…). Переход в него из командного режима – “:”.

Открыть/создать файл

vi mamapapa.txt – открыть один файл.

vi mama.txt papa.txt – открыть файл mama.txt, после выхода из него открыть файл papa.txt.

Файл открывается в командном режиме с помощью команды vi. Здесь  можно просмотреть файл, переместиться по его содержимому, стереть текст, но внести изменения или ввести текст в этом режиме нельзя.

Создание файла происходит при помощи той же команды. Собственно, создание файла происходит в момент сохранения.

Для открытия или создания нового файла в командном режиме нужно набрать:

:e filename

Перед этим нужно сохранить предыдущий файл:

:w – сохраняет файл с существующим именем или

:sav filename – «Сохранить как».

Перемещение по файлу

Перемещение по файлу происходит с помощью стрелочек. Также можно использовать быстрые клавиши:

^ или 0 – в начало текущей строки;

$ – в конец текущей строки;

w – на слово вправо;

b – на слово влево.

Редактирование файла

Предположим, в нашем файле записан текст, который необходимо отредактировать. Для этого необходимо перейти в режим ввода. Самый простой способ – из командного режима нажатие клавиши “i”. После чего можно приступать к вводу текста. <ESC> вернет нас к командному режиму.

Другие важные команды:

Команда

Описание команды

R,i

переход в режим ввода – замена текста под курсором

I

переход в режим ввода с начала текущей строки

o

переход в режим ввода с новой строки под курсором

O

переход в режим ввода с новой строки над курсором

a

переход в режим ввода после курсора

x

стирание символа под курсором

X

стирание символа перед курсором

dd

стирание текущей строки

d<число>d

стирание числа строк, начиная с текущей

yy

копирование текущей строки в неименованный буфер

y<число>у

копирование числа строк начиная с текущей в неименованный буфер

p

вставка строки из неименованного буфера под курсор

P

вставка строки из неименованного буфера над курсором

J

слияние текущей строки со следующей

u

отмена последней команды

.

повтор последней команды

Запись/выход

<ESC>:w<CR> – записать файл

<ESC>:w!<CR> – записать файл

Эта команда может помочь, если файл заблокирован другим пользователем, либо отсутствуют такие привилегии. При попытке записи без “!” будет выдано соответствующее предупреждение.

<ESC>:w new_file<CR>

Создать новый файл “new_file” и записать в него текущее содержимое. Если файл существует, будет показано предупреждение.

<ECS>:q<CR> – выйти из редактора.

Если файл был изменен, выйти не получится. В таких случаях необходимо добавлять после команды “!”:

<ECS>:q!<CR> – выйти из редактора не сохраняя изменения <ESC>:wq<CR> или <ESC>ZZ<CR> – записать файл и выйти

Коэффициент повторения

Дополнительные команды:

слияние текущей строки со следующей

 

Команда

Описание команды

^G

показать информацию о файле

G

перейти в конец файла

<number>G

перейти на конкретную строку <number>

:<number>

перейти на <number> строк вперед

:set nu[mber]

отобразить слева нумерацию строк (:set nonu[mber] – спрятать нумерацию)

:set wrap

переносить длинные строки (:set nowrap – не переносить)

:syntax on/off

включить/выключить подсветку синтаксиса

:colorscheme <name>

задать цветовую тему (где <name> имя темы, TAB работает как авто-дополнение)

/мама

поиск текста “мама” в файле

n

повторить поиск

:h или :help

список возможной помощи (:viusage, :exusage)

:set fileformat=dos

:set fileformat=unix

привести концы строк в файле к виду dos или unix, соответственно

:set ts=4

задать размер табуляции в 4 пробела

Если вы нашли ошибку, выделите текст и нажмите Ctrl+Enter.