Данный редактор является очень мощным инструментом для редактирования текста. Работает в консольном и графическом режимах. Он содержит множество команд и позволяет быстро и элегантно выполнять различные задачи. Минусом данного редактора является неинтуитивный терминал, который в отличие от nano не содержит никаких подсказок. Поэтому, открыв файл, сразу же хочется его закрыть.
Как и в предыдущем уроке мы рассмотрим лишь базовые и самые необходимые команды для того, чтобы выполнять те же действия, что и в предыдущем уроке.
Немного теории.
Vim имеет 4 режима работы:
- Обычный режим
- Командный режим или режим “последней строки”
- Режим вставки или редактирования
- Режим выделения текста (визуальный)
При открытии файла по умолчанию открывается обычный режим. В нем любая набранная буква воспринимается как команда. Некоторые команды мы рассмотрим немного позже. Вот как выглядит обычный режим:
Чтобы из обычного режима попасть в командный режим необходимо набрать знак “:” (двоеточие). В этом режиме можно вводить более “продвинутые” команды, которые позволяют открывать другие файлы и выполнять команды из shell, bash. Чтобы вернуться в обычный режим нажмем 2 раза на Esc.
Для перехода в режим редактирования набери команду “i” в обычном режиме. В данном режиме можно печатать и удалять текст. Для возврата в обычный режим нажми на Esc.
Для входа в визуальный режим набери команду «v» (сокр. от visual — визуальный, видимый) или «V», находясь в обычном режиме. Для возврата в обычный режим нажмем 2 раза на Esc.
А в чем разница между v и V?
С помощью v можно выделять каждый символ по отдельности, а с V — сразу целую строку.
Перемещаться из одного режима в другой можно только через основной режим. Например, из режима редактирования нельзя сразу перейти в командный режим. Необходимо сначала вернуться в основной режим, а потом уже в командный.
Теперь попробуем выполнить те же операции, что и в предыдущем уроке.
У нас имеется файл Configuration.txt. Необходимо сделать следующее:
- Создать новый текстовый файл Example.txt
- В файле Configuration.txt найти 28-ю строчку
- Начиная с 28-й строки выделить и скопировать в буфер 10 строк текста
- Вставить текст из буфера в файл Example.txt
- Закрыть файл Configuration.txt
- В файле Example.txt найти и удалить строки, которые содержат слово “configuration”
- Затем в конец файла добавить произвольный текст
- Сохранить изменения в файле и закрыть
1) Создадим файл Example.txt
vim Example.txt
Пока файл не сохранен он не будет создан. Поэтому для записи необходимо перейти в командный режим и наберем команду «w» (сокр. от write — запись) и нажимаем Enter.
После выполнения команды редактор автоматически вернется в обычный режим. В дальнейшем все команды командного режима будут сопровождаться двоеточием, например так :w.
Для закрытия файла используем команду :q (сокр. от quit — выходить).
А можно одной командой сохранить и закрыть файл?
Да, в vim можно комбинировать несколько команд. Например, :wq означает сохранить и закрыть. В дальнейшем мы изучим больше команд и поймем как их можно между собой комбинировать.
2) Теперь откроем файл Configuration.txt и найдем 28-ю строчку:
vim Configuration.txt
Находясь в обычном режиме наберем номер строки и комбинацию Shift +G и курсор остановится на нужной строке. Чтобы было удобнее отслеживать номера строк введем команду :set number
Чтобы удалить номера строк введем :set nonumber.
Кстати, при наборе команд в обычном режиме в терминале ничто не отображается.
Существует и второй способ.
Для этого наберем символ “:” (двоеточие), то есть перейдем в командный режим и просто введем номер строки. Затем нажимаем Enter.
3) Теперь выделим и скопируем текст.
Для этого выполним v или V и с помощью стрелок выделим часть текста.
еперь скопируем текст в буфер обмена с помощью команды y. Редактор автоматически перейдет в обычный режим.
4) Для вставки текста в файл Example.txt не нужно держать файл Configuration.txt открытым. Однако попробуем открыть файл Example.txt, не закрывая Configuration.txt.
Для этого выполним команду :sp Example.txt. В этом же терминале откроется второе окно и можно сразу видеть и редактировать оба файла.
В открывшемся файле вставим скопированный текст командой p (сокр. от put — ставить, помещать).
ля того, чтобы переключаться между открытыми файлами воспользуемся комбинацией Ctrl + W (иногда требуется выполнить данную комбинацию 2 раза).
5) Закроем Configuration.txt с помощью :q.
Кстати, если файл редактировали и не сохранили, то при выполнении команды :q редактор выдаст ошибку. Если не нужно сохранять изменения, то просто выполним команду :q!.
6) Теперь найдем и удалим строки, содержащие слово “configuration”.
Существуют 2 варианта поиска слов:
/искомое_слово — поиск от текущей позиции и до конца файла
?искомое_слово — поиск от текущей позиции и до начала файла
Для продолжения поиска нажимаем на n, для перехода к предыдущему найденному слову нажмем на N.
Найденные слова могут быть подсвечены, но это зависит от настроек редактора. Все настройки хранятся в файле /etc/vim/vimrc.
Когда строки найдены, то удалить их можно также 2-мя способами:
посимвольно с помощью клавиши Delete или x.
сразу целую строку командой dd.
Кстати, все удаленные символы и строки сохраняются в буфере обмена и их можно вставить в любом месте с помощью команды p.
А что делать, если случайно удалено не то, что хотелось?
Для отката действий используем u (сокр. от undo — отмена) или U.
А в чем между ними разница?
u используется для отмены последнего действия, а U — для всех действий. То есть, чтобы отменить последние 5 действий нужно 5 раз нажать на клавишу u либо можно все это сделать одним нажатием на U.
Для отмены самого отката, то есть для возврата в состояние до выполнения команды u используем комбинацию Ctrl + R.
7) И наконец последнее — добавление произвольного текста.
Здесь все просто — перейдем в режим редактирования командой i и набираем произвольный текст. Команды в данном режиме не работают. Затем перейдем в обычный режим.
8) Сохраняем и закрываем файл с помощью :wq.
Итак, подытожим:
:q — закрыть файл
:wq — сохранить и закрыть файл
:!q — закрыть файл без сохранения изменений
:w — сохранить изменения
стрелки — перемещения по файлу
i — переход в режим редактирования
v, V — переход в визуальный режим
u, U — откат действий
Ctrl + R — отмена отката действий
y — копирование в буфер обмена
p — вставка из буфера обмена
x, Delete — посимвольное удаление
dd — построчное удаление
/искомое_слово — поиск слова вперед от текущей позиции
?искомое_слово — поиск слов назад от текущей позиции
n — продолжение поиска
N — возврат к предыдущему найденному слову
номер_строки + Ctrl + G — переход на указанную строку
:номер строки — переход на указанную строку
:sp файл — открывает новый файл в текущем терминале, текущий файл при этом остается открытым.
Ctrl + W — переключение между открытыми файлами одного терминала.
Для начала этих команд будет достаточно. Приведу еще парочку полезных команд:
vimtutor — выполняется из bash. Представляет собой встроенный краткий курс по vim
r буква (символ) — заменяет букву в тексте под курсором на указанную букву
w — переход на одно слово вперед
2w — переход на слова вперед. Цифра указывает на сколько слов необходимо перейти.
b — переход на одно слово назад
2b — переход на 2 слова назад
gg — переход в начало файла
G — переход в конец файла
0 — переход в начало строки
$ — переход в конец строки
:help — справка
d$ — удаление строки, начиная от текущей позиции и до конца строки
dd — удаление всей строки
d2w — удаление 2-х первых слов, то есть удаление вперед от текущей позиции
d2b — удаление 2-х последних слов, то есть удаление назад от текущей позиции
Для тех, кому не совсем удобно редактировать в консольном режиме, можно работать в графическом редакторе.
Достаточно выполнить команду gvim файл.
Редактор поддерживает множество настроек, которые хранятся в /etc/vim/vimrc. Изменяя данные настройки можно максимально адаптировать редактор для своего удобства.
На этом все.