Если по какой-то причине он не установлен, то его можно установить выполнив команду установки. Для rpm-basedдистрибутивов:
yum install vim
Для deb-basedкоманда следующая:
apt-get install vim
На самом деле команды vi и vim могут запускать одно и то же приложение с разными настройками. В более ранних версиях ОС Linux редактор vim может быть не установлен, но всегда есть редактор vi.
Для работы с программой нужно войти на сервер используя протокол SSH. Например, на Windows установив программу PuTTY, а на Linux или Mac использовать встроенную программу ssh. В зависимости от системы Linux, а также программы, которую используете для подключения к серверу, можно производить копирование и вставку из буфера обмена Вашей операционной системы. Например, вставить текст в PuTTY можно при помощи комбинации SHIFT+INS, а скопировать - просто выделив текст. К сожалению, не на всех дистрибутивах Linux на сервере это работает.
Для того, чтобы запустить редактор, войдите на сервер по SSH используя любой доступный клиент - встроенный в Вашу ОС или, например, PuTTYи выполните команды:
vi
vim
Для существующих можно указывать как абсолютные, так и относительные пути (показан пример с абсолютным путём):
vi /путь/к/файлу
vim /путь/к/файлу
Редактор vi/vim более сложный и продвинутый, чем, например, nano. Основная его особенность в том, что у него существует два основных режима: режим команд и режим вставки. В режиме команд почти каждая буква или комбинация выполняет какую-либо команду. В режиме вставки производится собственно ввод текста. Работа в командном режиме производится только с латинской раскладкой клавиатуры. Для того, чтобы войти в режим вставки, нужно в режиме команд нажать латинскую букву 'i' или кнопку INSERT (если Вы уже находитесь в режиме вставки, под курсором просто будет появляться буква 'i'). Для выхода из режима вставки нажмите ESC.
Рассмотрим внешний вид главного окна редактора vim.
Изображение 1. Внешний вид редактора vim в командном режиме
Изображение 2. Внешний вид редактора vim в режиме вставки
Программа имеет "чистый", аскетический интерфейс, но возможности её очень большие. Программа разрабатывалась для удобного и быстрого управления исключительно из клавиатуры. Поэтому при открытии файла мы видим только область для редактирования и внизу узкая строка состояния, которая показывает режим (командный, вставки или визуального выделения), дополнительную информацию о введённых командах, которая появляется во время введения комбинированных команд, номер строки и символа в строке. Все элементы настраиваются.
Навигация по тексту также производится иначе, чем у nano и других классических редакторов.
В командном режиме можно перемещаться по тексту используя как стрелки, кнопки HOME, END, PG UP, PG DOWN, так и буквы на клавиатуре (самые главные команды будут в конце этого раздела):
H - влево
J - вниз
K - вверх
L - вправо
Перемещаться по словам можно используя кнопки W и B.
Это сделано для того, чтобы не отрывать глаза от экрана и руки от клавиатуры во время редактирования, что сильно повышает скорость работы. Большинство команд vim выполняются при нажатии обычных букв в командном режиме.
В режиме вставки можно воспользоваться стрелочками, но это работает не во всех системах и терминалах.
В редакторе vim также можно производить базовые действия по редактированию, такие как копирование, вставка текста, поиск, замена. Эти кнопки нужно нажимать в командном режиме. Следующие команды написаны в качестве шпаргалки:
V - выделить текст
Y - копировать
D - удалить выделенное
DD (последовательно два раза подряд нажать кнопку D) - удалить строку
DAW (последовательно нажать 3 буквы на клавиатуре) - удалить слово
X или DEL - удалить символ под курсором
SHIFT+P - вставить перед курсором
O - добавить строку после текущей и перейти в режим редактирования
SHIFT+O - добавить строку перед текущей и перейти в режим редактирования
U - отменить действие
CTRL+R - повторить действие
/ (слэш) - поиск по слову
N - при поиске перейти к следующему найденному
SHIFT+N - при поиске перейти к предыдущему найденному
Как было указано выше, для входа в режим вставки нужно использовать кнопку I или INSERT. При этом ввод начнётся перед символом, на котором стоял курсор. Для того, чтобы войти в режим вставки и добавить символы после курсора, нажмите кнопку A. Также для того, чтобы войти в режим вставки в начале строки, нажмите SHIFT+I, в конце строки - SHIFT+A.
Отдельно стоит описать процесс поиска и замены. В редакторе vim для этого используются регулярные выражения. Знакомство с ними - это отдельная тема, выходящая за рамки данной статьи. В общем случае если Вы перейдёте в режим поиска (кнопка '/' в командном режиме), введёте слово для поиска и нажмёте ENTER - программа найдёт его. Далее нажимайте N или SHIFT+N для продолжения поиска.
Для того, чтобы заменить одно слово на другое во всём файле в редакторе vim нужно перейти в специальный подрежим командного режима - режим команд - и ввести специальную команду. Для перехода в режим команд введите символ ':' (двоеточие) находясь в командном режиме. Введите все символы:
:%s/old/new/g
где old - старое слово, которое необходимо заменить; new - новое, на которое заменить. В конце - нажать клавишу ENTER.Например, заменю слово Lorem на Hello:
Изображение 3. Замена слова в редакторе vim
После нажатия кнопки ENTER:
Изображение 4. Замена произведена
Таким образом можно заменить, например, название сайта в дампе базы данных mysql. Пример:
:%s/example.com/domain.net/g
Теперь самый главный вопрос касающийся редактора vi/vim, а именно: как из него выйти. Для этого нужно перейти в режим команд (нажав ':' в командном режиме) и набрать одну из следующих последовательностей:
:q - выход, если не были сделаны изменения
:q! - если были сделаны изменения, но Вы не хотите их сохранять
:w - записать (сохранить) файл
:wq - записать файл и выйти
Если с работой редактора vim возникли сложности, то для того, чтобы покинуть редактор и начать всё с начала, нажмите несколько раз клавишу ESC для того, чтобы сбросились все промежуточные режимы и чтобы был произведён выход из режима вставки и наберите на клавиатуре :q! . При необходимости, несколько раз.