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

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


vim:basics

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


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

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

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

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

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

## Командный режим

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

=='h' — перемещение на один символ влево;

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

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

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

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

## Удаление

выполняется при помощи команд =='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 имя_файла'==.

#vim

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