Инструменты пользователя

Инструменты сайта


vim:basics

Это старая версия документа!


# Vim: необходимый минимум знаний

## Режим вставки

Первая вещь, на которую вы должны обратить внимание — это то, что Vim может работать в различных режимах: - командном режиме, - режиме вставки и - режиме «последней строки» (известном ещё как «ex mode»).

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

Чтобы переключиться в режим вставки, нажмите 'i', после чего вы получите возможность редактировать текст. При помощи нажатия на Esc вы можете затем вернуться в командный режим, а введя ':' в командном режиме, вы попадаете в ex-mode. ## Командный режим

Команды, которые могут использоваться в командном режиме, можно перечислять очень долго. Но пока что мы ограничимся лишь самым необходимым. Давайте начнём с перемещения по тексту:

- 'h' — перемещение на один символ влево; - 'l' — перемещение на один символ вправо; - 'j' — перемещение на один символ вниз; - 'k' — перемещение на один символ вверх;

Можно смещать курсор не на один символ, а на слово целиком:

- 'w' перемещает на слово вперёд, - 'b' — на слово назад.

Словом в Vim считается любая последовательность алфавитно-цифровых символов. Например, «word» — это слово, а «one-year» — это уже два слова, поскольку они разделены дефисом.

### Прочие команды для перемещение курсора

  • gj - передвинуть курсор на одну видимую строку вниз
  • gk - передвинуть курсор на одну видимую строку вверх
  • H - переместиться к началу экрана
  • M - переместиться к середине экрана
  • L - переместиться к концу экрана
  • w - переместиться вперед на начало слова
  • e - переместиться вперед на конец слова
  • b - переместиться назад на начало слова
  • % - переместиться к парному символу (по умолчанию поддерживаются: '()', '{}', '[]' - подробнее по команде :h matchpairs в vim)
  • 0 - переместиться на начало строки
  • $ - переместиться на конец строки
  • gg - переместиться на первую строку документа
  • G - переместиться на последнюю строку документа
  • 5G - переместить на пятую строку
  • } - переместиться к следующему параграфу (или функции/блоку при редактировании кода)
  • { - переместиться к предыдущему параграфу (или функции/блоку при редактировании кода)
  • Ctrl + b - переместиться назад на целый экран
  • Ctrl + f - переместиться вперед на целый экран
  • Ctrl + d - переместиться вперед на половину экрана
  • Ctrl + u - переместиться назад на половину экрана

Совет: Добавьте число перед командой перемещения курсора для того, чтобы повторить её. Например, 4j перемещает курсор на 4 строки вниз.

## Удаление

выполняется при помощи команд 'd' или 'x'.

- Если вам нужно удалить один символ, поставьте курсор над этим символом и нажмите 'x'. - Для удаления слова под курсором используйте 'dw', а для удаления предыдущего слова — 'db'.

- Если требуется удалить целую строку, используйте команду 'dd'. - При помощи команды 'd$' можно удалить часть строки от позиции курсора до конца строки, - а командой 'd^' (или 'd0') — от текущей позиции курсора до начала строки.

## Копирование и вставка

Копирование и вставку текста в Vim можно выполнять невероятно быстро. Чтобы переключиться в режим выделения текста, используйте команду 'v', 'V' или 'Ctrl+v'. После переключения в режим выделения вы можете выделять текст, перемещая курсор клавишами h, l, j, k или же клавишами со стрелками.

- В режиме 'v' — будет происходить *«обычное» выделение*, - в режиме 'V' — *выделение целых строк*, - а в режиме 'Ctrl+v' — *блочное выделение*, с его помощью можно выделять вертикальные блоки.

После того, как вы выделите нужный текст, используйте команду 'y' для того, чтобы скопировать выделенный фрагмент в буфер.

Далее, при помощи команды 'p' или 'P' можно вставить скопированный текст из буфера. 'p' вставит текст после курсора, а 'P' — перед ним.

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

Чтобы переключиться в режим поиска используйте команду '/' — для поиска в прямом направлении, или команду '?' — в обратном; затем введите шаблон поиска.

Поиск и замена в тексте выполняется при помощи команды ':s' с заданной областью поиска и замены. Например, чтобы найти «old» и заменить на «new», используйте следующую команду:

``` :%s/old/new/ ```

Символ процента перед 's' означает глобальную область поиска. Вместо глобальной области вы можете определить диапазон строк, например: ``` :1,15s/old/new/ ```

Имейте ввиду, что указанные выше команды заменяют только первое найденное вхождение.

Часто бывает нужно найти и заменить все найденные вхождения в тексте. Для этого можно воспользоваться «глобальной» заменой, добавив к команде букву 'g': ``` :%s/old/new/g ``` Приведённая выше команда заменит все найденные «old» на «new».

Дополнительно вы можете заставить Vim запрашивать у вас подтверждение перед выполнением замены: ``` :%s/old/new/gc ```

## Откат действий

Что делать, если вы внесли изменения, которые не нужно было вносить? Воспользуйтесь командой 'u', которая отменит последнее изменение, сделанное вами.

Если же после отката на действие назад вы снова передумали и решили «отменить отмену», вам поможет команда 'Ctrl+r', которая делает откат в обратную сторону.

Имейте ввиду, что если ваш Vim работает в режиме совместимости с Vi, то вы не можете откатиться более, чем на один шаг назад. В своём же «родном» режиме Vim «помнит» и позволяет откатываться на большое количество шагов.

## Сохранение и выход

Один из вопросов, который возникает у новичков, первый раз работающих с Vim, звучит примерно: «как мне выйти из него?». Действительно, глядя на экран с редактором, догадаться как именно это делается, невозможно. Это нужно просто знать.

Если вы хотите сохранить внесённые в файл изменения, используйте команду ':w', а чтобы сохранить изменения и покинуть редактор — команду ':wq'.

Не хотите сохранять внесённые исправления? Бывает и такое. При помощи команды ':q!' можно выйти из Vim, при этом не сохраняя текущий файл.

Также, если нужно, вы можете сохранить редактируемый текст в другой файл при помощи команды ':w имя_файла'.

/var/www/html/dokuwiki/data/attic/vim/basics.1666735289.txt.gz · Последнее изменение: (внешнее изменение)