Первая вещь, на которую вы должны обратить внимание — это то, что Vim может работать в различных режимах:
Непосредственно после запуска, Vim находится в командном режиме. В этом режиме весь ввод с клавиатуры будет воспринят как команды редактору, а не редактирование текста.\
Чтобы переключиться в режим вставки, нажмите 'i', после чего вы получите возможность редактировать текст. При помощи нажатия на Esc вы можете затем вернуться в командный режим, а введя ':' в командном режиме, вы попадаете в ex-mode.
Команды, которые могут использоваться в командном режиме, можно перечислять очень долго. Но пока что мы ограничимся лишь самым необходимым. Давайте начнём с перемещения по тексту:
Можно смещать курсор не на один символ, а на слово целиком:
Словом в Vim считается любая последовательность алфавитно-цифровых символов. Например, «word» — это слово, а «one-year» — это уже два слова, поскольку они разделены дефисом.
Совет: Добавьте число перед командой перемещения курсора для того, чтобы повторить её. Например, 4j перемещает курсор на 4 строки вниз.
выполняется при помощи команд 'd' или 'x'.
Копирование и вставку текста в Vim можно выполнять невероятно быстро. Чтобы переключиться в режим выделения текста, используйте команду 'v', 'V' или 'Ctrl+v'. После переключения в режим выделения вы можете выделять текст, перемещая курсор клавишами h, l, j, k или же клавишами со стрелками.
После того, как вы выделите нужный текст, используйте команду '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 имя_файла'.