Курс по сетевым технологиям
A A A

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

 

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

 

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

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

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

 

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

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

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

Командный режим

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

Режим редактирования

Для входа в визуальный режим набери команду "v" (сокр. от visual - визуальный, видимый) или "V", находясь в обычном режиме. Для возврата в обычный режим нажмем 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. В этом же терминале откроется второе окно и можно сразу видеть и редактировать оба файла:

 Редактирование сразу 2-х файлов в отдельных подокнах

 

В открывшемся файле вставим скопированный текст командой 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 файл:

Графический редактор

Для работы в графическом редакторе понадобится меньше команд. Для изучения графического редактора воспользуемся встроенным руководством:

gvimtutor

 Тьюториал по vim

 

Редактор поддерживает множество настроек, которые хранятся в /etc/vim/vimrc. Изменяя данные настройки можно максимально адаптировать редактор для своего удобства. 

На этом все.

 

 

Комментарии для сайта Cackle