
Vi – стандартный текстовый редактор, доступный в любой установке Ubuntu. Его минималистичный интерфейс позволяет работать с файлами напрямую из терминала без графической оболочки, что особенно удобно при работе на удалённых серверах или в средах с ограниченными ресурсами.
Редактор разделён на режимы: командный и режим вставки. Командный режим управляет навигацией, поиском и редактированием блоков текста, тогда как режим вставки позволяет вводить или изменять содержимое документа. Освоение переключения между этими режимами критично для продуктивной работы.
Vi поддерживает работу с буферами, поиск и замену текста по шаблонам, сохранение нескольких версий изменений и быстрый переход по документу с помощью команд. Даже при базовых знаниях это ускоряет редактирование файлов по сравнению с графическими редакторами.
Для начала работы достаточно открыть терминал и выполнить команду vi имя_файла. Если файла не существует, Vi создаст новый документ. Это делает редактор универсальным инструментом как для системного администрирования, так и для написания скриптов и конфигурационных файлов.
Vi в Ubuntu: руководство по использованию редактора
Для открытия файла используйте команду:
vi имя_файла
Если файл отсутствует, Vi создаст новый. Для редактирования переключитесь в режим вставки клавишей i или a, а для возврата в командный режим нажмите Esc.
Основные команды навигации в командном режиме:
- h – перемещение на один символ влево
- l – перемещение на один символ вправо
- j – переход на следующую строку
- k – возврат на предыдущую строку
- 0 – переход к началу строки
- $ – переход к концу строки
Для редактирования текста применяйте команды:
- x – удалить символ под курсором
- dd – удалить текущую строку
- yy – скопировать текущую строку
- p – вставить из буфера после курсора
- r – заменить символ под курсором
Сохранение и выход выполняются командами:
- :w – сохранить изменения
- :q – выйти из редактора
- :wq – сохранить и выйти
- :q! – выйти без сохранения
Поиск и замена текста производится через команду:
:/шаблон – поиск строки с шаблоном
:%s/старое/новое/g – замена всех вхождений в файле
Для быстрого перехода между несколькими открытыми файлами используйте команды :n для следующего файла и :prev для предыдущего. Буфер обмена позволяет копировать несколько строк и вставлять их в любом месте документа.
Установка Vi на Ubuntu и проверка версии
Vi входит в стандартный набор пакетов Ubuntu, но для точной проверки версии выполните команду:
vi --version
Если Vi не установлен, рекомендуется использовать Vim – расширенную версию Vi с обратной совместимостью:
sudo apt update
sudo apt install vim
После установки можно убедиться, что редактор доступен, запустив команду vi без аргументов. Для удобства работы полезно знать расположение бинарного файла:
which vi
which vim
Основные сведения о версии и настройках Vi удобно представить в таблице:
| Команда | Описание |
|---|---|
| vi —version | Отображает установленную версию и опции сборки |
| vim —version | Показывает версию Vim и поддерживаемые расширения |
| which vi | |
| which vim |
Для базового использования достаточно установить Vim, проверить версию и убедиться, что бинарные файлы доступны в системе. Это обеспечивает стабильную работу редактора на любых конфигурациях Ubuntu.
Открытие и создание файлов в Vi через терминал
Для открытия существующего файла в Vi используйте команду:
vi имя_файла
Если файл находится в другой директории, укажите полный путь, например:
vi /home/username/documents/example.txt
Для создания нового файла в текущей директории достаточно вызвать Vi с именем файла, которого ещё нет:
vi новый_файл.txt
Vi автоматически создаст пустой файл, готовый к редактированию. После запуска редактора курсор находится в командном режиме, для ввода текста переключитесь на режим вставки клавишей i, a или o.
Если необходимо открыть несколько файлов одновременно, перечислите их через пробел:
vi файл1.txt файл2.txt файл3.txt
Переключение между открытыми файлами производится командами :n для следующего файла и :prev для предыдущего.
При работе с файлами, расположенными в защищённых директориях, используйте права суперпользователя:
sudo vi /etc/hosts
Это позволяет редактировать системные конфигурации без ограничения доступа.
Переключение между режимами редактирования и команд

Vi работает в двух основных режимах: командный и режим вставки. Командный режим используется для навигации, удаления и копирования текста, а режим вставки позволяет вводить и изменять содержимое файла.
Для переключения между режимами применяются следующие клавиши:
- i – вставка пе
Базовые команды навигации по тексту

Для работы с файлами в Vi ключевое значение имеет умение быстро перемещать курсор по тексту в командном режиме.
Перемещение по символам и строкам:
- h – переместить курсор на один символ влево
- l – переместить курсор на один символ вправо
- j – перейти на следующую строку
- k – перейти на предыдущую строку
- 0 – перейти к началу текущей строки
- $ – перейти к концу текущей строки
Перемещение по словам и блокам текста:
- w – перейти к началу следующего слова
- e – перейти к концу текущего или следующего слова
- b – перейти к началу текущего или предыдущего слова
- Ctrl+f – прокрутка на один экран вперёд
- Ctrl+b – прокрутка на один экран назад
Для быстрого перехода к конкретной строке используйте команду :номер_строки, например :42 перемещает курсор на 42-ю строку. Цифровой префикс позволяет повторять команды, например 3j перемещает курсор на три строки вниз.
Ввод, удаление и замена текста в Vi
Ввод текста в Vi осуществляется в режиме вставки. Основные команды для перехода в этот режим:
- i – вставка перед курсором
- a – вставка после курсора
- I – вставка в начале строки
- A – вставка в конце строки
- o – новая строка ниже текущей
- O – новая строка выше текущей
Удаление текста производится в командном режиме следующими командами:
- x – удалить символ под курсором
- dd – удалить текущую строку
- dw – удалить слово от курсора до его конца
- d$ – удалить текст от курсора до конца строки
Замена текста выполняется через команды:
- r – заменить символ под курсором
- R – режим непрерывной замены текста
- cw – заменить слово, начиная с текущей позиции курсора
Для комбинирования операций можно использовать числовой префикс. Например, 3x удаляет три символа подряд, а 2dd удаляет две строки начиная с текущей.
Сохранение изменений и выход из редактора

Сохранение и выход из Vi выполняются в командном режиме. Для перехода в командный режим нажмите Esc. Основные команды управления файлами:
- :w – сохранить изменения в текущем файле
- :q – выйти из редактора, если нет несохранённых изменений
- :wq или 😡 – сохранить изменения и выйти из редактора
- :q! – выйти без сохранения изменений
Для сохранения файла под новым именем используйте команду:
:w новое_имя_файлаЕсли необходимо сохранить файл и продолжить редактирование, достаточно использовать :w. Для быстрой комбинации сохранения и выхода удобно применять :wq или 😡, которые выполняют обе операции одновременно.
При редактировании файлов с ограниченными правами, например системных конфигураций, используйте запуск Vi с sudo для сохранения изменений:
sudo vi /etc/hostsПоиск и замена текста в файлах через Vi
Поиск текста в Vi осуществляется в командном режиме с использованием символа /: для прямого поиска. Например:
:/примерЭта команда переместит курсор к первому вхождению слова «пример» после текущей позиции. Для поиска следующего вхождения используйте n, а для предыдущего – N.
Замена текста выполняется через команду :s. Основные форматы:
- :s/старое/новое/ – заменить первое вхождение в текущей строке
- :s/старое/новое/g – заменить все вхождения в текущей строке
- :%s/старое/новое/g – заменить все вхождения по всему файлу
- :%s/старое/новое/gc – заменить все с подтверждением каждого вхождения
Для поиска с использованием регулярных выражений Vi поддерживает символы ^ для начала строки, $ для конца строки и .* для произвольного количества символов. Например, команда:
:/^Тест.*слово/найдёт строки, начинающиеся с «Тест» и содержащие «слово».
Замена с учётом регистра выполняется с опцией \c или \C. Пример:
:%s/текст/Текст/gcЭта команда заменит все вхождения «текст» на «Текст» с подтверждением каждого изменения.
Использование буфера обмена и копирование строк
В Vi существует несколько буферов для хранения текста перед вставкой. Основной буфер используется по умолчанию при копировании и удалении строк. Для копирования строки применяют команду:
yyЭта команда сохраняет текущую строку в буфер. Для копирования нескольких строк укажите числовой префикс, например 3yy скопирует три строки начиная с текущей.
Удалённый или скопированный текст вставляется командой p после курсора или P перед курсором.
Для копирования блока текста используйте визуальный режим. Нажмите v для выделения символов, V для выделения строк или Ctrl+v для блочного выделения. После выделения нажмите y для копирования.
Vi позволяет работать с системным буфером обмена через Vim с поддержкой +clipboard. Для копирования в системный буфер используйте команду:
"+yА вставка из системного буфера выполняется командой «+p. Это полезно при переносе текста между Vi и другими приложениями.
Вопрос-ответ:
Как открыть существующий файл в Vi и создать новый при необходимости?
Для открытия файла используйте команду vi имя_файла. Если файл отсутствует, Vi создаст пустой документ с указанным именем. При необходимости указать путь к другому каталогу добавьте полный путь, например vi /home/user/docs/example.txt.
Какие команды позволяют переключаться между режимами редактирования и команд?
Vi имеет два основных режима: командный и вставки. Для ввода текста используйте i (вставка перед курсором), a (вставка после курсора) или o (новая строка ниже текущей). Возврат в командный режим выполняется клавишей Esc. Также Ctrl-O позволяет выполнить одну команду из командного режима, не покидая режим вставки.
Как искать текст и выполнять замену в Vi?
Для поиска текста используйте :/шаблон. Курсор переместится к первому совпадению, n повторяет поиск, N — в обратном направлении. Замена выполняется командой :s/старое/новое/ для текущей строки или :%s/старое/новое/g для всего файла. Для подтверждения каждой замены добавьте c (:%s/старое/новое/gc).
Каким образом можно копировать и вставлять строки в Vi, включая использование системного буфера?
Копирование строки выполняется командой yy, нескольких строк — с числовым префиксом, например 3yy. Вставка осуществляется p после курсора или P перед курсором. В визуальном режиме выделите текст v, V или Ctrl+v, затем нажмите y для копирования. Для работы с системным буфером в Vim с поддержкой +clipboard используйте «+y для копирования и «+p для вставки в другие приложения.
