Данный редактор является очень мощным инструментом для редактирования текста. Работает в консольном и графическом режимах. Он содержит множество команд и позволяет быстро и элегантно выполнять различные задачи. Минусом данного редактора является неинтуитивный терминал, который в отличие от nano не содержит никаких подсказок. Поэтому, открыв файл, сразу же хочется его закрыть.

 

Как и в предыдущем уроке мы рассмотрим лишь базовые и самые необходимые команды для того, чтобы выполнять те же действия, что и в предыдущем уроке.

 

Немного теории.

Vim имеет 4 режима работы:

  • Обычный режим
  • Командный режим или режим “последней строки”
  • Режим вставки или редактирования
  • Режим выделения текста (визуальный)

При открытии файла по умолчанию открывается обычный режим. В нем любая набранная буква воспринимается как команда. Некоторые команды мы рассмотрим немного позже. Вот как выглядит обычный режим:

Файл открыть редактором vim в обычном режиме

Чтобы из обычного режима попасть в командный режим необходимо набрать знак “:” (двоеточие). В этом режиме можно вводить более “продвинутые” команды, которые позволяют открывать другие файлы и выполнять команды из shell, bash. Чтобы вернуться в обычный режим нажмем 2 раза на Esc.

Для перехода в режим редактирования набери команду “i” в обычном режиме. В данном режиме можно печатать и удалять текст. Для возврата в обычный режим нажми на Esc.

Для входа в визуальный режим набери команду « (сокр. от visual — визуальный, видимый) или «, находясь в обычном режиме. Для возврата в обычный режим нажмем 2 раза на Esc.

А в чем разница между v и V?

С помощью v можно выделять каждый символ по отдельности, а с V — сразу целую строку.

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

Теперь попробуем выполнить те же операции, что и в предыдущем уроке.

У нас имеется файл Configuration.txt. Необходимо сделать следующее:

  1. Создать новый текстовый файл Example.txt
  2. В файле Configuration.txt найти 28-ю строчку
  3. Начиная с 28-й строки выделить и скопировать в буфер 10 строк текста
  4. Вставить текст из буфера в файл Example.txt
  5. Закрыть файл Configuration.txt
  6. В файле Example.txt найти и удалить строки, которые содержат слово “configuration”
  7. Затем в конец файла добавить произвольный текст
  8. Сохранить изменения в файле и закрыть

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 — отмена отката действий

— копирование в буфер обмена

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

На этом все.