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

Что говорит история?

Vim — это аббревиатура от Vi IM доказано. Это бесплатный кроссплатформенный текстовый редактор с открытым исходным кодом. Впервые он был выпущен Брамом Муленааром в 1991 году для вариантов UNIX. Vim основан на оригинальном редакторе Vi, который был создан Биллом Джоем в 1976 году. Примерно в 90-х годах Vi не хватало некоторых функций по сравнению с редактором Emacs. Поэтому Брэм реализовал множество недостающих функций и выпустил его под названием vim.

Монтаж

Как я уже говорил ранее, Vim работает на таких платформах, как Windows, Linux, Mac и т. д.

Для установки на Windows скачайте исполняемый файл с Vim site и запустите файл. Следуйте инструкциям на экране, и все будет хорошо.

Vim предустановлен в большинстве операционных систем *nix. Но если он установлен в вашей системе, вы можете установить его с помощью менеджера пакетов по вашему выбору.

Добавление команды установки для операционных систем на основе Debian.

sudo apt-get update 
sudo apt-get install vim

Чтобы убедиться, что он установлен правильно, запустите which vim, и вы должны получить /usr/bin/vim на выходе.

Начало работы с Vim

Вы можете начать работу с Vim, набрав его имя в терминале.

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

Режимы Vim

Вы должны знать о самой важной концепции Vim, прежде чем двигаться дальше. Это режимы в Vim.

Все в Vim считается режимом. Вы можете добиться всего, чего захотите, если освоите режимы в Vim. В Vim есть много режимов. Но мы рассмотрим 4 самых важных режима.

Они есть,

  1. Командный режим
  2. Режим командной строки
  3. Режим вставки
  4. Визуальный режим

Давайте рассмотрим их один за другим.

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

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

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

Этот режим используется для редактирования содержимого файла. Вы можете переключиться в режим вставки, нажав i из командного режима. Вы можете использовать клавишу Esc для переключения обратно в командный режим.

Режим командной строки

Этот режим также используется для игры с некоторыми командами. Но команды в этом режиме начинаются с двоеточия (:). Вы можете переключиться в этот режим, нажав : (двоеточие) в командном режиме.

Визуальный режим

Этот режим используется для визуального выделения некоторого текста и выполнения команд над этим участком кода. Вы можете переключиться в этот режим, нажав v из командного режима.

Вышеупомянутых 4 режимов достаточно для выполнения некоторого набора файловых операций в Vim. Теории сделаны. Давайте изучим Vim практически.

Типичные операции текстового редактора

Создать новый файл

Создать новый файл с помощью Vim очень просто. Вы можете сделать это из режима командной строки.

Выполните следующую команду, чтобы создать новый файл

:edit sample.txt

Приведенная выше команда открывает файл sample.txt в режиме редактирования, если он существует, в противном случае создает новый файл.

После выполнения этой команды вы перейдете в командный режим (как показано на снимке экрана ниже) и не сможете вводить текст.

Чтобы добавить текст в созданный файл, нажмите i на клавиатуре. Команда i используется для ввода текста в файл. Как только вы нажмете i, вы сможете увидеть, что вы вошли в режим вставки Vim, взглянув на левый нижний угол файла.

В этом режиме вы можете ввести в файл все, что хотите.

Мы закончили с написанием контента. Мы хотим сохранить файл сейчас. Если вы не сохраните и просто закроете терминал в этот момент, все ваше содержимое будет потеряно.

Сохранить файл

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

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

После того, как вы нажмете клавишу Esc, вы не сможете увидеть --INSERT-- внизу слева, и это означает, что вы находитесь не в режиме вставки, а в командном режиме.

Чтобы сохранить файл, введите следующую команду сейчас:

:w

Закройте файл и выйдите из Vim

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

:q

Приведенная выше команда закрывает файл и выходит из редактора vim.

В качестве альтернативы люди используют команду, представляющую собой комбинацию двух вышеуказанных команд (сохранить и выйти), чтобы быстро сохранить и выйти из Vim. Команда,

Приведенная выше команда закрывает редактор Vim сразу после сохранения файла.

Редактировать файл

Чтобы отредактировать файл, вы должны открыть файл с помощью Vim и переключиться в режим вставки.

Давайте откроем файл sample.txt, который мы создали выше.

vim sample.txt

Сейчас мы в командном режиме. Чтобы отредактировать файл, мы должны переключиться в режим вставки. Как мы видели ранее, нажатие i из командного режима переключит в режим вставки.

Выполните ту же процедуру для сохранения файла и выхода из Vim. Нажмите Esc на клавиатуре и введите :w, чтобы сохранить файл, и :q, чтобы выйти из Vim.

Здесь вы можете задать очевидный вопрос.

Что делать, если я хочу закрыть файл без сохранения изменений? (Проигнорируйте сделанные мной изменения и верните файл в старое состояние).

Как закрыть файл без сохранения изменений?

Чтобы закрыть файл без сохранения изменений, необходимо запустить :q! из командного режима.

Давайте рассмотрим это на примере

Я добавил еще немного контента в файл.

Но я не хочу сохранять изменения, которые я сделал сейчас. Чтобы закрыть файл без сохранения этого изменения, мы должны перейти в командный режим (нажав клавишу Esc). Введите :q! в командном режиме. Это закроет файл, игнорируя сделанные сейчас изменения.

Давайте просмотрим файл и подтвердим, получили ли мы ожидаемый результат.

Ага. В файле нет последней строки, которую мы недавно добавили. Итак, изменения не сохраняются.

Как вырезать, копировать и вставлять текст из файла с помощью Vim?

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

  1. Использование визуального режима
  2. Использование клавиатуры

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

Давайте откроем файл в командном режиме, прежде чем продолжить

Предположим, вы хотите скопировать слово «Привет» из 1-й строки и вставить его в 3-ю строку.

Первым делом поместите курсор в то место, откуда вы хотите скопировать текст (находясь в командном режиме).

Войдите в визуальный режим, нажав клавишу v на клавиатуре.

Текст -- VISUAL -- внизу слева указывает на то, что мы находимся в визуальном режиме.

Переместите курсор в то место, где заканчивается текст, который вы хотите скопировать.

В данном случае я подвожу курсор к букве o слова Hello.

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

Когда вы закончите перемещать курсор в нужное место, нажмите y, чтобы скопировать текст, или нажмите d, чтобы вырезать текст.

В данном случае я копирую текст. Итак, я нажимаю y на клавиатуре.

Переместите курсор в то место, куда вы хотите вставить текст.

В нашем случае мы должны переместить курсор на 3-ю строку.

Нажмите p (в нижнем регистре), чтобы вставить текст после курсора, и P (в верхнем регистре), чтобы вставить текст перед курсором.

Нажмите :wq, чтобы сохранить и закрыть файл.

Как найти и заменить текст в Vim?

Найти текст и заменить его другим текстом в Vim просто и понятно. Есть однострочная команда, которая упрощает весь этот процесс.

Вот синтаксис,

:[range]s/{pattern}/{string}/[flags]

Давайте разберем каждую часть и разберемся в них.

[range] указывает, что вы можете передать диапазон строк. Передайте %, чтобы найти и заменить во всех строках. range отделяется запятой. Чтобы найти и заменить строки с 5 по 10, введите 5,10. Используйте . для представления текущей строки и $ для последней строки файла.

{pattern} указывает шаблон для поиска текста. Здесь вы можете передавать шаблоны регулярных выражений.

{string} — строка для замены в найденном тексте.

[flags] указывает, хотите ли вы передать какие-либо дополнительные флаги (например, флаг c передается для подтверждения перед заменой текста). По умолчанию это делает поиск с учетом регистра, вы можете изменить его, чтобы он выполнял поиск без учета регистра, передав флаг i.

Хорошо, давайте рассмотрим это на примере.

В нашем файле sample.txt есть 2 "Hello". Давайте заменим «Привет» на «Привет» в обоих местах.

Команда сделать это,

:%s/Hello/Hi/g

%s указывает на замену содержимого во всем файле

Hello - текст поиска

Hi - это текст для замены

g указывает на глобальное изменение

Давайте разберемся в этом на другом примере.

На этот раз я хочу изменить слово «Привет» (поиск без учета регистра), которое встречается между строками 2 и 3, и заменить его на «Привет и добро пожаловать» с подтверждением изменения каждого вхождения.

Команда сделать это,

:2,3s/Hi/Hello and Welcome/gci

Вот описание для каждого варианта,

y - Заменить спичку

n - Пропустить матч

a - Заменяет совпадение и все остальные вхождения совпадения

q или Esc - Выход из замены

l - Заменить матч и выйти

CTRL+Y - Прокрутить экран вниз

CTRL+E - Прокрутить экран вверх

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

Поскольку у нас есть только одно вхождение «Привет» между строками 2 и 3, он не запрашивает никакого дальнейшего подтверждения, и операция завершена.

Как отменить/повторить в Vim?

Чтобы отменить изменение в Vim, нажмите u в командном режиме. Чтобы повторить, нажмите CTRL + R. Вы можете добавить перед числом (n) u, чтобы отменить n раз. Например. 2u отменит 2 раза. Чтобы просмотреть доступные параметры отмены, введите :undolist в командном режиме.

Давайте разберемся с этим на примере.

Вот текущее состояние нашего файла sample.txt.

У меня есть курсор на «а» в тексте «Привет и добро пожаловать» на 3-й строке. Давайте удалим слово «и», набрав dw в командном режиме.

Давайте отменим, чтобы вернуть слово «и» обратно в файл. Для этого нажмите u в командном режиме.

Переделаем и уберем слово «и», набрав CTRL + R в командном режиме.

Заключение

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

Хлопайте 👏, если вам понравилось и вы узнали что-то новое.

Чтобы узнать больше о Vim, подпишитесь на мою рассылку.

Первоначально опубликовано на https://www.gogosoon.com 26 января 2023 г.