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 самых важных режима.
Они есть,
- Командный режим
- Режим командной строки
- Режим вставки
- Визуальный режим
Давайте рассмотрим их один за другим.
Командный режим
Это режим по умолчанию (также называемый обычным режимом) в 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-й строки и вставить его в 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 г.