Текстовый редактор VIM, основы работы

Июнь 14th, 2010 Рубрики: Linux, основы Linux

команды редактора vim Доброго времени, читатели моего блога! В данной статье расскажу о своем опыте изучения редактора vim. Опишу основные команды и принципы работы данного текстового редактора.

Начну с общего понимания редактора и его назначения. Редактор vim - это текстовый редактор, созданный на основе более старого - vi. Ныне это один из мощнейших текстовых редакторов с полной свободой настройки и автоматизации, и созданным благодаря этому расширениям и надстройкам.

Пользовательский интерфейс Vim’а может работать в чистом текстовом (консольном) режиме. Это его самый большой недостаток, т.к. интерфейс далеко не интуитивен и требует обучения для работы в программе.

У редактора есть несколько режимов работы:

  • нормальный или командный
  • режим ввода
  • Ex - режим или режим командной строки

Основной источник информации по vim в Linux - это справка. В Linux есть отличная справка, которую можно получить несколькими способами:

  1. В режиме командной строки
    1. :help - вывод полной справочной системы по vim
    2. :help value - вывод справки, касающейся value
    3. :help value <Ctrl+D> - вывод списка разделов справки, содержащих value
  2. Утилита vimtutor содержит множество обучающих уроков.

Запуск vim производится следующим способом:

[root@fw root]# vim

запускается редактор с пустым файлом.

[root@fw root]# vim textfile

Запускается с новым файлом с именем textfile, если файла не существует, либо запускается редактирование существующего файла textfile.

Работа в vim:

Нормальный  (командный) режим

По умолчанию Vim начинает свою работу в нормальном режиме, который иногда также называют командным. Нажатие клавиш в этом режиме воспринимается как команды, такие, например, как скопировать, удалить или переместить текст. Перейти в нормальный режим из другого можно, два раза нажав клавишу Esc.

Перечислю некоторые из существующих и часто используемых команд (aka Горячих клавиш):

  • a - перейти в режим вставки после символа в текущей позиции курсора
  • A - перейти в режим вставки в конце текущий строки
  • b - Перейти в начало предыдущего слова на текущей строке
  • d - вырезать
  • h - перейти на один символ влево в текущей строке
  • i - перейти в режим вставки в текущей позиции курсора
  • j - перейти на следующую строку
  • k - перейти на предыдущую строку
  • l - переход на один знак вправо
  • o - вставить новую строку за текущей
  • O - вставить новую строку над текущей
  • p - вставить (past)
  • v - режим выделения, он же визуальный
  • w - переход к следующему слову вправо в текущей строке
  • e - переход к следующему слову влево в текущей строке
  • y - копировать  (yank)
  • u - ОТМЕНА действия
  • x - удаление символа
  • /string - поиск значения string
  • d d (двойное нажатие d) - удаление строки
  • разделение экрана для работы с несколькими файлами:
    • Ctrl+w,s - по горизонтали
    • Ctrl+w,v - по вертикали
  • Ctrl+стрелка - перемещение между окнами
  • Ctrl+R - отмена последней отмены
  • Ctrl+f - переход на страницу вперед
  • Ctrl+b - переход на страницу назад
  • $ - перемещение курсора в конец строки
  • 0 — перемещение курсора в начало

Нормальный режим — это центральный режим, из этого режима осуществляется переход во все остальные режимы.

Режим вставки текста

Для входа в этот режим, используется клавиша Ins. В этом режиме Vim работает так же как и большинство «обычных» текстовых редакторов. Набранные символы не воспринимаются как команды, а вставляются в существующий текст. В режиме ввода текста используются символьно-цифровые клавиши для ввода текста, а так же ←Backspace, Del для удаления символов и клавиши навигации - стрелки, PgDown/up и home, end для перемещения по тексту.

Ex-режим или Режим командной строки

Этот режим вызывается нажатием : (двоеточие)  из командного режима. За двоеточием следует сложная команда, например такая как поиск или замена, после ввода которой она передаётся на исполнение нажатием   ↵ Enter . После того как команда выполнена, редактор возвращается в нормальный режим. К этому режиму также относятся команды / (поиск вперёд по тексту), ? (поиск назад по тексту) и команда-фильтр ! (передача данных внешнему фильтру).

Существует множество команд данного режима, ниже перечислю наиболее используемые:

  • :e file - создание нового файла file
  • :e! - Редактировать текущую копию файла на диске. Команда перезагрузит файл, отменив созданные вами изменения. Вы также можете использовать команду, если копия на диске была изменена по какой-либо причине и вам требуется последняя ее версия.
  • :w - записать изменения в файл
  • :w - записать изменения в файл безусловно (в независимости от того было ли модифицировано содержимое или нет).
  • :r file - вставка в текущий файл, содержимого файла file
  • :q - выход из редактора
  • :q! - выход из редактора без подтверждения изменений
  • :s/string1/string2/g - поиск в текущей строке, строки string1 и замена на string2
  • :%s/string1/string2/g - поиск во всем файле, строки string1 и замена на string2
  • :1-5s/string1/string2/g - поиск в строках с 1 по 5, строки string1 и замена на string2
  • :number - переход на строку с номером - number
  • :!command - запуск команды инетпретатора command . После завершения команды, появиться приглашение вернуться в редактор

Вот такая вот маленькая статейка. Подведу итог. Запуск редактора vim происходит командами vim и vim file. Ввод текста производиться как и в любом другом редакторе с помощью клавиатуры, предварительно нажав клавишу Ins для перехода в режим ввода текста. Выход из режима ввода производиться нажатием Esc. Выход из редактора производится переходом в режим командной строки (нажатием : - двоеточия ), ввода q и нажатия Enter.

Думаю описанных команд и описанных знаний для минимальной работы в редакторе достаточно.

Для того чтобы vim использовал цветную подсветку синтаксиса, необходимо в файле глобальных параметров /usr/share/vim/vimrc раскомментировать строку syntax on.

С Уважением, Mc.Sim!




Теги: , ,

2 комментария к “Текстовый редактор VIM, основы работы”

  1. Andrew
    Май 7th, 2014 at 23:22
    1

    :number — переход на строку с номером — number

    Проще в командном режиме вбить номер строки и нажать G.
    Хороший сайт :)

    • Июнь 24th, 2014 at 20:16
      2

      Спасибо за коммент.
      номерG — Это дело привычки )

Написать комментарий