Основы управления в редакторе Vim:
Перемещение курсора (нормальный/визуальный режим):
• h j k l — стрелки курсора
• w / b — следующее/предыдущее слово
• W / B — следующее/предыдущее слово (разделяются пробелом)
• e / ge — следующий/предыдущий конец слова
• 0 / $ — начало/конец строки
• ^ — первый непустой символ в строке (эквивалентно 0w)
Редактирование текста:
• i / a — начать режим вставки в позиции курсора/после курсора
• I / A — начать режим вставки в начале/конце строки
• o / O — добавить пустую строку ниже/выше текущей строки
• Esc или Ctrl+[ — выход из режима вставки
• d — удалить
• dd — удалить строку
• c — удалить и начать режим вставки
• cc — удалить строку и начать режим вставки
Операторы:
• Операторы также работают в визуальном режиме
• d — удаление от позиции курсора до указанной
• c — удаление от позиции курсора до указанной, затем переход в режим вставки
• y — копирует от позиции курсора до указанной
• > — увеличить отступ
• < — уменьшить отступ
• Можно комбинировать операторы с движениями. Например, d$ удалит от позиции курсора до конца строки.
Отметка текста (визуальный режим):
• v — начать визуальный режим
• V — начать визуальный режим построчно
• Ctrl+v — начать визуальный блочный режим
• Esc или Ctrl+[ — выйти из визуального режима
Буфер обмена:
• yy — копировать (yank) строку
• p — вставить после курсора
• P — вставить до курсора
• dd — удалить (вырезать) строку
• x — удалить (вырезать) символ в текущей позиции
• X — удалить (вырезать) предыдущий символ
• d / c — по умолчанию копируют удалённый текст
Выход:
• :w — записать (сохранить) файл, не выходя из Vim
• :wq — записать (сохранить) и выйти
• :q — выйти (не выполнится, если были изменения)
• :q! — выйти и отбросить несохранённые изменения
Поиск и замена:
• /pattern — поиск по шаблону
• ?pattern — поиск назад по шаблону
• n — повторить поиск в том же направлении
• N — повторить поиск в противоположном направлении
• :%s/old/new/g — заменить все вхождения "old" на "new" в файле (хотя лучше использовать gn)
• :%s/old/new/gc — заменить все вхождения "old" на "new" в файле с запросом подтверждения
Общие команды:
• u — отменить последнее действие
• Ctrl+r — повторить отменённое действие
Продвинутое перемещение курсора:
• Ctrl+d — перемещение вниз на половину экрана
• Ctrl+u — перемещение вверх на половину экрана
• } — перемещение вперёд на параграф (до следующей пустой строки)
• { — перемещение назад на параграф (до предыдущей пустой строки)
• gg — перемещение в начало файла
• G — перемещение в конец файла
• :[номер] — перейти к указанной строке в документе
• Ctrl+e / Ctrl+y — прокрутка экрана вниз/вверх на одну строку
Поиск символа:
• f[char] / F[char] — перемещение вперёд/назад к указанному символу[char]
• t[char] / T[char] — перемещение вперёд/назад к позиции перед указанным символом[char]
• ; / , — повтор поиска вперёд/назад
Редактирование текста:
• J — объединить следующую строку с текущей
• r[char] — заменить один символ на указанный[char] (не используя режим вставки)
Визуальный режим:
• O — переместить на другой угол блока
• o — переместить на другой конец выделенной области
Работа с файловыми вкладками:
• :e имя_файла — редактировать файл
• :tabe — создать новую вкладку
• gt — перейти на следующую вкладку
• gT — перейти на предыдущую вкладку
• :vsp — вертикальное разделение окон
• Ctrl+ws — горизонтальное разделение окон
• Ctrl+wv — вертикальное разделение окон
• Ctrl+ww — переключиться между окнами
• Ctrl+wq — закрыть окно
Метки:
• Метки позволяют переходить к определенным точкам в вашем коде.
• m{a-z} — установить метку {a-z} в позиции курсора
• '{a-z} — переместить курсор в начало строки, где была установлена метка
• `{a-z} — к метке
• '' — вернуться на предыдущую позицию перехода
Текстовые объекты:
• Если вы находитесь внутри скобок def (arg1, arg2, arg3), di( удалит все между скобками, то есть "изменить все внутри ближайших скобок". Без текстовых объектов вам потребовалось бы выполнить T(dt).