ВОЙТИ
    opened image

    Часто возникает необходимость редактировать текстовые файлы непосредственно на сервере с операционной системой Linux. При установке ОС Linux из наших шаблонов в системе уже доступен текстовый редактор vi/vim, который Вы можете использовать для редактирования текстовых файлов непосредственно на сервере.

    Если по какой-то причине он не установлен, то его можно установить выполнив команду установки. Для 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! . При необходимости, несколько раз.

     

     

    Вывод

    Редактор vim хорошо подойдёт тем, кто желает учиться и узнавать много нового. В опытных руках он может сильно повысить Вашу продуктивность в написании текста и программного кода. Потратив некоторое время на его освоение, Вы уже не захотите использовать какой-либо другой редактор на сервере Linux.