Converter

Перемещение в Vim

Vim — это мощный текстовый редактор, известный своей эффективностью и гибкостью. Одной из ключевых особенностей Vim является его уникальная система перемещения по тексту. В отличие от многих других редакторов, где основное внимание уделяется использованию мыши и клавиш со стрелками, Vim предлагает множество команд для быстрого и точного перемещения курсора. В этой статье мы рассмотрим основные и продвинутые команды перемещения в Vim.

Основные команды перемещения

Стрелки

Хотя использование стрелок в Vim не рекомендуется для опытных пользователей, они всё же доступны:

  • h — влево
  • j — вниз
  • k — вверх
  • l — вправо

Перемещение по словам

  • w — переместиться к началу следующего слова.
  • e — переместиться к концу текущего слова.
  • b — переместиться к началу предыдущего слова.

Перемещение по строкам

  • 0 — переместиться в начало текущей строки.
  • ^ — переместиться к первому непробельному символу строки.
  • $ — переместиться в конец текущей строки.

Перемещение по тексту

  • gg — переместиться в начало файла.
  • G — переместиться в конец файла.
  • { — переместиться к началу текущего параграфа.
  • } — переместиться к началу следующего параграфа.

Продвинутые команды перемещения

Комбинированные команды

  • 5j — переместиться вниз на 5 строк.
  • 3w — переместиться вперед на 3 слова.
  • 2b — переместиться назад на 2 слова.

Поиск

  • /pattern — поиск текста по шаблону pattern вперед по файлу.
  • ?pattern — поиск текста по шаблону pattern назад по файлу.
  • n — перейти к следующему вхождению найденного шаблона. То есть если выделить текст
  • N — перейти к предыдущему вхождению найденного шаблона.

Метки и переходы

  • ma — установить метку a на текущей позиции курсора.
  • 'a — перейти к метке a.
  • '' — вернуться к предыдущей позиции курсора.

Перемещение по словам и символам

  • f<char> — переместиться к следующему вхождению символа <char> в строке.
  • t<char> — переместиться к символу перед следующим вхождением <char> в строке.
  • F<char> — переместиться к предыдущему вхождению символа <char> в строке.
  • T<char> — переместиться к символу после предыдущего вхождения <char> в строке.

Перемещение по скобкам

  • % — переместиться к соответствующей открывающей или закрывающей скобке ((), {}, []).

Дополнительно

В Lazyvim используется плагин flash.nvim. Который позволяет быстро передвигаться по коду используя s<char>

flash

Flash работает только с видимой частью буффера.

для прокрутки можно использовать

  • <ctrl><d> - вниз
  • <ctrl><u> - вверх
  • <ctrl>f - вперед (для данных комманд можно указать значение на сколько вперед <ctrl>5f - на 5 страниц вперёд)
  • <ctrl>b - назад

Если нажать клавишу z в режиме Normal:

Z key menu

Клавиши относительного курсора, которые я использую исключительно для прокрутки, - это zt, zb и zz. Они перемещают строку, на которой находится курсор, в верхнюю, нижнюю или среднюю часть экрана соответственно. При перемещении в верхнюю или нижнюю часть экрана над или под курсором остается несколько строк контекста.

Существуют и другие команды, которые также перемещают курсор в первый столбец окна, но вместо того, чтобы запоминать эти сочетания клавиш, я рекомендую сочетать предыдущие команды с 0, как в zt0, zb0 и zz0. Команда 0 просто означает «Перейти к началу строки». Вы также можете использовать home, если на вашей клавиатуре есть клавиша home, но 0 легче нажимать на многих клавиатурах.

Заключение

В Vim перемещение курсора является одной из основных задач, и владение этими командами значительно ускоряет работу с текстом. Начав с основных команд, постепенно изучая и применяя продвинутые, вы сможете работать гораздо быстрее и эффективнее. Практикуйте эти команды регулярно, и скоро они станут для вас интуитивно понятными.

Полезные ресурсы

  • Vim Tutor — интерактивное руководство по Vim.
  • Vimcasts — видеоуроки по использованию Vim.
  • Vim документация — официальная документация Vim.

Следуя этим рекомендациям, вы сможете освоить искусство перемещения в Vim и значительно повысить свою продуктивность в работе с текстом.