Перемещение в 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 работает только с видимой частью буффера.
для прокрутки можно использовать
-
<ctrl><d>
- вниз -
<ctrl><u>
- вверх -
<ctrl>f
- вперед (для данных комманд можно указать значение на сколько вперед<ctrl>5f
- на 5 страниц вперёд) -
<ctrl>b
- назад
Если нажать клавишу z в режиме Normal:
Клавиши относительного курсора, которые я использую исключительно для прокрутки, - это zt, zb и zz. Они перемещают строку, на которой находится курсор, в верхнюю, нижнюю или среднюю часть экрана соответственно. При перемещении в верхнюю или нижнюю часть экрана над или под курсором остается несколько строк контекста.
Существуют и другие команды, которые также перемещают курсор в первый столбец окна, но вместо того, чтобы запоминать эти сочетания клавиш, я рекомендую сочетать предыдущие команды с 0, как в zt0, zb0 и zz0. Команда 0 просто означает «Перейти к началу строки». Вы также можете использовать home, если на вашей клавиатуре есть клавиша home, но 0 легче нажимать на многих клавиатурах.
Заключение
В Vim перемещение курсора является одной из основных задач, и владение этими командами значительно ускоряет работу с текстом. Начав с основных команд, постепенно изучая и применяя продвинутые, вы сможете работать гораздо быстрее и эффективнее. Практикуйте эти команды регулярно, и скоро они станут для вас интуитивно понятными.
Полезные ресурсы
- Vim Tutor — интерактивное руководство по Vim.
- Vimcasts — видеоуроки по использованию Vim.
- Vim документация — официальная документация Vim.
Следуя этим рекомендациям, вы сможете освоить искусство перемещения в Vim и значительно повысить свою продуктивность в работе с текстом.