8 подписчиков

Tutorial по Vim (Часть 1)

Доброго времени суток!Работая в терминале Linux очень часто приходится править конфигурационные файлы и естественно для этого приходится использовать текстовый редактор.

Доброго времени суток!Работая в терминале Linux очень часто приходится править конфигурационные файлы и естественно для этого приходится использовать текстовый редактор. В Linux есть много разных консольных/текстовых редакторов, вот часть из них: nano, vi, vim, ed, emacs. Все они чем-то похожи, чем-то отличаются друг от друга. Когда передо мной стал выбор какой редактор использовать, я выбрал nano, он мне на тот момент показался достаточно простым в освоении, но как оказалось простой путь не самый легкий и оптимальный. Я начал искать ему замену, одна из причин, когда тебе нужно что-то изменить на сервере под управлением CentOS, сервер находится в изолированной сети и естественно не имеет выхода в internet, а в CentOS из коробки не установлен nano. Я начал просматривать серверные операционные системы Linux и обратил внимание, что на всех из коробки есть vi. Переход с nano на vi оказался не простым и многих пользователей vi/vim отпугивает. Но я решил полностью перейти на vi/vim и через неделю уже не мог себе и представить более удобного редактора. Поэтому решил написать небольшое руководство по основным командам в vi/vim. Редактор Vi и Vim практически братья близнецы и команды их на 99% по моему опыту одинаковы, но vim не всегда идет из коробки в отличии от vi, так что все команды указанные для Vim будут работать и в Vi. Приступим к изучению Vi/Vim.

Азы
1) Курсор перемещается либо клавишами со стрелками, либо клавишами hjkl.

h (влево) j (вниз) k (вверх) l (вправо)

2) Для запуска Vim (из приглашения командной оболочки) наберите:

vim ИМЯ_ФАЙЛА <ENTER>

3) Для завершения работы с Vim наберите:

<ESC> :q! <ENTER> чтобы отказаться от сохранения изменений.

Или наберите: <ESC> :wq <ENTER> чтобы сохранить изменения.

4) Для удаления символа под курсором в обычном режиме, нажмите: x

5) Чтобы вставить текст перед курсором в обычном режиме, наберите: i вводите вставляемый текст <ESC>. Чтобы добавить текст после курсора: a вводите добавляемый текст <ESC>.

Замечание! Нажатие <ESC> переместит вас в обычный режим (Normal mode) либо прервёт нежелательную и частично завершённую команду.

Работа со строками и словами
1) Для удаления текста от курсора до конца слова наберите:
dw
2) Для удаления текста от курсора до конца строки наберите:
d$
3) Для удаления всей строки наберите:
dd
4) Для повтора перемещения введите количество перед командой:
2w
5). Для перехода к началу строки используйте нуль:
0

Режим ВСТАВКА
1) Для вставки текста, который только что был удалён, наберите
p . Эта команда вставит удалённый текст ПОСЛЕ курсора (если была удалена строка,то она будет помещена в строке под курсором).

2) Для замены символа под курсором наберите r и затем заменяющий символ.

3) Команда изменения позволяет вам изменить указанный объект от курсора до окончания перемещения. Например, наберите ce для замены от курсора до конца слова, c$ для изменения до конца строки.

ПОИСК, ЗАМЕНА, ПЕРЕХОД
1)
Ctrl-g показывает ваше положение в файле и информацию о нем.
Shift-G перемещает вас в конец файла. Номер, за которым следует Shift-Gпозволяет перейти к строке с этим номером.
gg перемещает вас к первой строке файла.

2) Нажатие / и затем ввод строки позволяет произвести поиск этой строки ВПЕРЁД по тексту.
Нажатие
? и затем ввод строки позволяет произвести поиск этой строки НАЗАД по тексту.
После поиска наберите
n для перехода к следующему вхождению искомой строки в том же направлении или Shift-N для перехода в противоположном направлении.

3) Нажатие % , когда курсор находится на (,),[,],{, или } позволяет найти парную скобку.

4) Для подстановки `стало' вместо первого `было' в строке, наберите :s/old/new
Для подстановки `стало' вместо всех `было' в строке, наберите
:s/old/new/g
Для замены всех вхождений `было' на `стало' в файле, наберите
:%s/old/new/g
Чтобы редактор каждый раз запрашивал подтверждение, добавьте 'c'
:%s/old/new/gc

Азы КОМАНД
:!команда исполняет внешнюю команду.
Некоторые полезные примеры:

1) :!ls -- вывести список файлов в каталоге.

:!rm ИМЯ -- удалить файл по имени.

2) :w ИМЯ_ФАЙЛА записывает текущий редактируемый в Vim файл на диск под указанным именем.

Еще ВСТАВКИ и КОМАНД
1) Нажмите
o для создания строки НИЖЕ курсора и перехода в режим вставки. Нажмите O для создания строки ВЫШЕ курсора.

2) Нажмите a для вставки текста ПОСЛЕ курсора. Нажмите A для вставки текста в конец строки.

3) Команда e подводит курсор к концу слова.

4) Команда y копирует текст, p - вставляет скопированный текст.

5) Нажатие заглавной R переводит в режим замены до нажатия клавиши <ESC> .

6) Для выделения текста надо нажать v (перейдете в ВИЗУАЛЬНЫЙ РЕЖИМ ) клавишами управления переместиться до нужного места.

Надеюсь для первой части хватит материала?...))

Так же все рекомендую уделить 30 минут своего времени и для закрепления материала пройти встроенное обучение, для его запуска в терминале наберите vimtutor.

Желаю всем удачи.

До встречи!