ДРУГОЕ / LINUX

Vim: от движения до сохранения

Если не указано иное, команды выполняются в Normal. Нажмите Esc; команды с двоеточием завершайте Enter.

Режимы и выход

  • Esc
    Вернуться в Normal перед выполнением команд из этой шпаргалки.
  • i / a / o
    Ввод перед курсором / после / на новой строке ниже.
  • v / V / Ctrl+V
    Выделение символами / строками / блоком. Терминал может перехватить Ctrl+V.
  • :w ↵
    Сохранить файл.
  • :q ↵ / :wq ↵
    Закрыть окно / сохранить и закрыть.
  • :q! ↵
    Закрыть окно, отбросив несохранённые изменения.
  • :help ↵ / vimtutor
    Справка в Vim / учебник из оболочки.

Навигация

  • h j k l
    Влево, вниз, вверх, вправо.
  • w / b / e
    Начало следующего слова / назад по словам / конец слова.
  • 0 / ^ / $
    Начало строки / первый непробельный символ / конец строки.
  • gg / G / 42G
    Начало файла / конец / строка 42.
  • Ctrl+D / Ctrl+U
    Полстраницы вниз / вверх.
  • %
    Перейти к парной скобке.
  • fX / ; / ,
    Найти символ X в строке / повторить / повторить в обратную сторону.

Правки и буферы

  • x / dd / dw
    Удалить символ / строку / слово вперёд.
  • yy / p / P
    Скопировать строку / вставить после / перед курсором.
  • ciw
    Заменить слово под курсором и перейти в режим ввода.
  • u / Ctrl+R
    Отменить / повторить изменение.
  • . / 3dw
    Повторить последнюю правку / удалить три слова.
  • "+y / "+p
    Системный буфер: только если сборка Vim и окружение поддерживают clipboard. Обычный y использует регистр Vim.

Поиск, замена и окна

  • /текст ↵ / ?текст ↵
    Поиск вперёд / назад (шаблон регулярного выражения).
  • n / N
    Повторить поиск в том же / противоположном направлении.
  • :noh ↵
    Убрать подсветку результатов.
  • :%s/old/new/gc ↵
    Замена по всему файлу с подтверждением каждого совпадения; old — регулярное выражение.
  • :set number ↵
    Показать номера строк.
  • :split / :vsplit
    Разделить окно горизонтально / вертикально; завершить Enter.
  • Ctrl+W, затем h/j/k/l
    Перейти в соседнее окно.
  • :bn / :bp
    Следующий / предыдущий буфер; завершить Enter.