Доброго времени суток!Работая в терминале 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.
Желаю всем удачи.
До встречи!