Текстовый редактор VIM, основы работы
Доброго времени, читатели моего блога! В данной статье расскажу о своем опыте изучения редактора vim. Опишу основные команды и принципы работы данного текстового редактора.
Начну с общего понимания редактора и его назначения. Редактор vim - это текстовый редактор, созданный на основе более старого - vi. Ныне это один из мощнейших текстовых редакторов с полной свободой настройки и автоматизации, и созданным благодаря этому расширениям и надстройкам.
Пользовательский интерфейс Vim’а может работать в чистом текстовом (консольном) режиме. Это его самый большой недостаток, т.к. интерфейс далеко не интуитивен и требует обучения для работы в программе.
У редактора есть несколько режимов работы:
- нормальный или командный
- режим ввода
- Ex - режим или режим командной строки
Основной источник информации по vim в Linux - это справка. В Linux есть отличная справка, которую можно получить несколькими способами:
- В режиме командной строки
- :help - вывод полной справочной системы по vim
- :help value - вывод справки, касающейся value
- :help value <Ctrl+D> - вывод списка разделов справки, содержащих value
- Утилита 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.