Про редактор VI, ходит много анекдотов в интернете, но что самое интересное — знать его нужно — это неотъемлемая часть всех Unix систем.
На любой особенно легковесной системе, скажем так каком нибудь роутере с флешкой не всегда есть возможность проинсталить nano, mc и др., поэтому приходится использовать именно VI.
Молодые администраторы, или пользователи недавно познакомившиеся с любой Unix системой, очень сильно пугаются когда какой-либо файл открывается в VI и они не знают что делать дальше, как редактировать, как сохранить, или наоборот — выйти без сохранения.
Именно поэтому, я и решил написать эту статью, что бы немного помочь в этом разобраться.
Вообще, про VI можно писать и писать, но я хочу затронуть только самое важное — то что чаще всего может пригодится, особенно новичкам.
Итак, VI — стандартный текстовый редактор UNIX, который есть в любой UNIX–подобной операционной системе. Первая версия редактора появилась в 1976 году.
В редакторе VI есть следующие основные режимы:
командный режим
режим редактирования
ex-режим или режим последней строки.
По умолчанию, работа начинается в командном режиме. В данном режиме можно перемещаться по файлу и выполнять некоторые «редактирующие» операции над текстом. Любое нажатие на клавиши в командном режиме воспринимается как команда. Возврат в командный режим из режима редактирования осуществляется нажатием клавиши
Для входа в режим редактирования, который используется для ввода текста, нужно выполнить одну из нижеприведенных команд.
Для входа в режим последней строки необходимо нажать клавишу «Shift» и символ «:». Редактор vi имеет встроенный не экранный редактор, именуемый ex, который используется для некоторых операций редактирования, ориентированных на строки; управления файлами (сохранить, выйти, перечитать и т.п.)
Команды редактора VI:
:help # вывод справочной информации в рабочем окружении редактора :q # выход из help |
Открытие и создание файлов:
$ vi [параметры] файл |
например:
$ vi filename # открыть файл filename $ vi +3 filename # открыть файл filename с 3-ей строки $ vi -r filename # открыть файл filename только для чтения $ vi newfile # создать новый файл |
Работа в командном режиме:
Команды, используемые для перемещения по тексту:
<ESC> # перейти в командный режим h # перейти влево на один символ j # перейти вниз на один символ k # перейти вверх на один символ l # перейти вправо на один символ 0 (ноль) или | # перейти в начало строки $ # перейти в конец строки w # перейти в начало следующего «слова», вперёд W # перейти в начало следующего «большого слова», вперёд e # перейти в конец «слова», вперёд E # перейти в конец «большого слова», вперёд b # перейти в начало «слова» или предыдущего «слова», назад B # перейти в начало «большого слова» или предыдущего «большого слова», назад ( # перейти в начало текущего или предыдущего предложения, назад ) # перейти в начало следующего предложения, вперёд { # перейти в начало текущего или предыдущего абзаца, назад } # перейти в начало следующего абзаца, вперёд G # перейти в конец файла <CTRL+B> # перейти на страницу вверх <CTRL+F> # перейти на страницу вниз |
Можно перемещаться по строкам, указав их номера в режиме командной строки:
:1 # перейти в начало файла :14 # перейти, например, к 14-й строке |
Поиск по тексту:
/<текст> # искать <текст> в прямом направлении после курсора ?<текст> # искать <текст> в обратном направлении до курсора n # повторить поиск в прямом направлении N # повторить поиск в обратном направлении / # повтор последнего поиска в прямом направлении ? # повтор последнего поиска в обратном направлении |
Операции «простого» редактирования:
x # удалить символ под курсором X # удалить предыдущий символ перед курсором J # объединить текущую строку со следующей r<символ> # заменить символ под курсором на <символ> dd # удалить текущую строку d<место> # удалить текст от курсора до его перемещения u # отменить последнюю операцию U # отменить последнюю операцию в текущей строке . # повторить операцию |
Работа в режиме редактирования:
Переход в режим для ввода текста осуществляется при помощи следующих команд:
i # перейти в режим редактирования перед курсором a # перейти в режим редактирования за курсором I # перейти в режим редактирования в начале текущей строки A # перейти в режим редактирования в конце текущей строки o # перейти в режим редактирования в новой строке после текущей строки O # перейти в режим редактирования в новой строке перед текущей строкой сс # заменить текущую строку c<место> # заменить текст от курсора до <места> его назначения R # перейти в режим замены символов |
Переход в визуальный режим осуществляется при помощи клавиши v, V или комбинации клавиш
v # перейти в визуальный режим для выделения текста посимвольно v<место> # перейти в визуальный режим и выделить текст от курсора до <места> V # перейти в визуальный режим для выделения текста построчно <CTRL+V> # перейти в визуальный режим для выделения прямоугольного участка текста d # вырезать выделенный фрагмент текста y # скопировать выделенный фрагмент текста p # вставить фрагмент текста после курсора P # вставить фрагмент текста перед курсором |
Поиск и замена текста осуществляется при помощи команды :s/
:s/<что>/<чем>/ заменить 1-ое совпадение в текущей строке :s/<что>/<чем>/g заменить все совпадения в текущей строке :%s/<что>/<чем>/g заменить все совпадения в файле :%s/<что>/<чем>/gc заменить все совпадения в файле с подтверждением |
Некоторые настройки редактора:
Редактор vi поддерживает автоматический отступ при редактировании исходных текстов программ. Современные версии редактора могут самостоятельно включать автоматический абзацный отступ. Можно также включить его вручную выполнив команду :set autoindent.
:set autoindent # включить абзацный отступ <CTRL+D> # увеличить уровень отступа <CTRL+T> # уменьшить уровень отступа :set tabstop=4 # установить абзацный отступ в 4 символа |
Полезными также могут оказаться следующие команды:
:set ic # игнорировать регистр при поиске :set hls # подсвечивать текст при поиске :set wrap # переносить «длинные» строки :set nowrap # отключить перенос «длинных» строк :set nu[mber] # отобразить слева нумерацию строк :set nonu[mber] # скрыть нумерацию строк :set fileformat=dos # привести концы строк в файле к формату dos :set fileformat=unix # привести концы строк в файле к формату unix :syntax on/off # включить/выключить подсветку синтаксиса (работает в vim) |
Завершение работы:
Завершение работы в редакторе осуществляется при помощи следующих команд, или их комбинаций:
:q # выход из файла (если не внесено никаких изменений) :q! # выход из файла без сохранения :wq # выход из файла с сохранением :x # выход из файла с сохранением :ZZ # выход из файла с сохранением :w # сохранить файл без выхода :w <имя файла> # сохранить буфер в файле <имя файла> :5,125 w <имя файла> # сохранить файл c 5 строки по 125 в файл <имя файла> |
Думаю, что этого вполне достаточно, что бы овладеть минимальными необходимыми знаниями по редактору VI.
Напоминаю всем копирующим мой контент о существовании закона "Об авторском праве".
В связи с этим, прошу во избежании конфликтов при копировании данного материала, ставить на него ссылку:
Также, вы можете отблагодарить меня переслав любую сумму на любой кошелек WebMoney, для поддержания данного ресурса. Или просто админу на пиво ;)
Кошельки для получения благодарности:
R386985788805
U234140473141
Z147712360455
На данной странице нет комментариев, возможно они закрыты. Если Вы хотите оставить свой комментарий, перейдите на специально созданный раздел