Vim изменит вашу жизнь и сделает проще.

Vim изменит вашу жизнь и сделает проще.

Каждый, кто когда-либо интересовался улучшением процесса написания или редактирования кода, рано или поздно сталкивается с упоминанием Vim или vi. В один из таких моментов, когда вы ищете идеальный инструмент для своей работы, вы можете наткнуться на Vim — на первый взгляд неприметный редактор, который может показаться не таким уж и выдающимся по сравнению с другими, например, с nano. Возникает вопрос: что делает Vim столь популярным? Почему все в интернете так хвалят этот редактор?

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

Шутки из разряда: ДА КАК ЖЕ ВЫЙТИ ИЗ VIM!!!

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

Собственно данное вступление было лишь предлогом для начала пути с VIM. Однажды кто-то в интернете сказал такую фразу:

Раньше я был глуп и слеп, но когда открыл для себя этот редактор, всё изменилось. Игнорировать его — значит начать свой путь к краху!
неизвестный

Вступление.

В мире программирования и разработки существуют инструменты, которые выходят за рамки обычных редакторов кода. Они становятся верными спутниками и неотъемлемой частью повседневной работы разработчика. Одним из таких инструментов является редактор Vim. С момента своего создания в 1991 году, Vim зарекомендовал себя как мощный и гибкий текстовый редактор, который позволяет программистам писать код быстрее и эффективнее. Благодаря своей модульной структуре и множеству расширений, Vim предлагает пользователю беспрецедентную степень контроля и персонализации рабочего процесса.

Часть 1. VIM

Зачем использовать Vim?

Vim изменит вашу жизнь и сделает проще.

Vim — это не просто текстовый редактор, а мощный инструмент, который может значительно улучшить ваш рабочий процесс и повысить продуктивность. Вот несколько причин, почему стоит использовать Vim:

Эффективность и скорость:

  • Vim разработан с акцентом на минимальные движения рук. Благодаря режиму команд и клавишным комбинациям, вы можете выполнять сложные операции с текстом гораздо быстрее, чем в других редакторах;
  • Возможность выполнения большинства операций без использования мыши ускоряет процесс редактирования и позволяет полностью сосредоточиться на коде.

Высокая кастомизация:

  • Vim предлагает широкие возможности настройки. Вы можете настроить его под свои нужды, создавая макросы, устанавливая плагины и изменяя конфигурационные файлы;
  • С помощью скриптов на Vimscript и интеграции с другими языками, вы можете автоматизировать рутинные задачи и расширять функциональность редактора.

Мощные функции редактирования:

  • Vim поддерживает многокурсовое редактирование, регулярные выражения для поиска и замены, а также визуальный режим для выделения текста;
  • Различные режимы работы (нормальный, вставки, визуальный и командный) позволяют гибко переключаться между редактированием, навигацией и выполнением команд.

Широкая совместимость и легкость:

  • Vim работает на большинстве операционных систем (Windows, macOS, Linux, BSD и др.) и доступен практически везде, где есть консольный доступ;
  • Он требует минимальных ресурсов и быстро запускается, что особенно полезно для работы на удалённых серверах и в ограниченных системных средах.

Стабильность и надежность:

  • Vim существует с 1991 года и имеет огромное сообщество пользователей и разработчиков, что обеспечивает постоянную поддержку и обновления;
  • Благодаря своей зрелости, Vim является очень стабильным и надежным инструментом, который не подведет вас в критический момент.

Обучение и развитие навыков:

  • Освоение Vim требует некоторого времени и усилий, но этот процесс помогает улучшить навыки работы с текстом и развить логическое мышление;
  • Сообщество Vim предлагает множество ресурсов для обучения, включая документацию, видеоуроки, книги и форумы, что облегчает процесс изучения.

Часть 2. Vimscript

Vimscript (или Vim Script) — это встроенный скриптовый язык в текстовом редакторе Vim. Он используется для настройки и расширения функциональности Vim. С помощью Vimscript можно автоматизировать рутинные задачи, создавать новые команды и макросы, а также настраивать интерфейс редактора.

Vim изменит вашу жизнь и сделает проще.

Основные особенности Vimscript:

Автоматизация задач:

  • Vimscript позволяет записывать и выполнять макросы, что значительно ускоряет выполнение повторяющихся задач;
  • Вы можете создавать свои собственные функции и команды для автоматизации сложных последовательностей действий.

Конфигурация Vim:

  • Основной конфигурационный файл Vim, ~/.vimrc, написан на Vimscript. В нём можно задать параметры редактора, такие как цвета, шрифты, отступы и многое другое;
  • С помощью Vimscript можно создавать условные конфигурации, которые изменяются в зависимости от типа файла или других факторов.

Расширение функциональности:

  • С помощью Vimscript можно писать плагины, которые добавляют в Vim новые возможности и инструменты;
  • Существует множество готовых плагинов на Vimscript, которые можно установить и использовать для улучшения рабочего процесса.

Интерактивное программирование:

  • Вы можете использовать командную строку Vim для выполнения отдельных команд на Vimscript в реальном времени;
  • Это позволяет быстро тестировать и отлаживать скрипты без необходимости перезапуска редактора.

Интеграция с другими языками:

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

Часть 3. Командный режим

Командный режим (Command Mode) — это один из основных режимов работы в Vim. В этом режиме пользователи могут выполнять команды для редактирования текста, навигации, поиска, замены и настройки параметров редактора. Командный режим отличается от режима вставки (Insert Mode), где вводимый текст добавляется непосредственно в документ.

Переход в командный режим

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

Основные команды командного режима

Навигация:

  • h: перемещение курсора влево;
  • j: перемещение курсора вниз;
  • k: перемещение курсора вверх;
  • l: перемещение курсора вправо;
  • w: перемещение к началу следующего слова;
  • b: перемещение к началу предыдущего слова;
  • 0: перемещение к началу строки;
  • $: перемещение к концу строки;
  • gg: перемещение к началу файла;
  • G: перемещение к концу файла;

Редактирование текста:

  • x: удаление символа под курсором;
  • dd: удаление текущей строки;
  • yy: копирование текущей строки;
  • p: вставка скопированного текста после курсора;
  • P: вставка скопированного текста перед курсором.u: отмена последнего действия;
  • Ctrl + r: повтор последнего отмененного действия.

Режимы работы с текстом:

  • i: переход в режим вставки перед курсором;
  • a: переход в режим вставки после курсора;
  • I: переход в режим вставки в начале строки;
  • A: переход в режим вставки в конце строки;
  • o: вставка новой строки ниже текущей и переход в режим вставки;
  • O: вставка новой строки выше текущей и переход в режим вставки.

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

  • /текст: поиск текста вперед по документу;
  • ?текст: поиск текста назад по документу;
  • n: переход к следующему совпадению при поиске;
  • N: переход к предыдущему совпадению при поиске;
  • :%s/старый/новый/g: замена всех вхождений "старый" на "новый" в документе.

Работа с файлами:

  • :w: сохранить изменения в файле;
  • :q: выйти из Vim;
  • :wq: сохранить изменения и выйти из Vim;
  • :q!: выйти из Vim без сохранения изменений;
  • :e имя_файла: открыть указанный файл;
  • :r имя_файла: вставить содержимое указанного файла в текущий документ.

Настройки и информация:

  • :set параметр: установить значение параметра (например, :set number для включения нумерации строк);
  • :help команда: открыть справку по указанной команде (например, :help w для справки по команде сохранения).

Сам режим выглядит таким образом:

Vim изменит вашу жизнь и сделает проще.

Для начала нужно понять, установлен ли у вас VIM, для этого введите в терминале vim, если после этого выскакивает не найден пакет vim, необходимо его установить командной:

sudo apt install vim -y

(данный способ подходит для Debian/Ubuntu)

sudo dnf install vim

(данный способ подходит для Fedora/RHEL линуксов)

Как происходит смена режимов в VIM

Vim изменит вашу жизнь и сделает проще.

Для примера редактирования я возьму конфигурационный файл Zabbix

sudo vim /etc/zabbix/zabbix_server.conf

Команды, которые мы можем использовать при запуске редактора vim с файлом:

sudo vim -R /etc/zabbix/zabbix_server.conf

Данная команда открывает файл в vim, только для чтения:

vim -o compose.yml example Старт
sudo vim -c 1130 /etc/zabbix/zabbix_server.conf

Параметр -с отвечает за: выполнить <команду> после загрузки первого файла, в нашем случае оказываемся в файле на строке 1130.

Мы попали в командный режим vim

Vim изменит вашу жизнь и сделает проще.

Справа внизу располагает строка состояние, где в данный момент находится наш курсор.

Vim изменит вашу жизнь и сделает проще.

Данный режим отвечает за перемещение по файлу, как правило в нем мы не редактируем файл, но можем кое-что изменить или добавить по необходимости.

Функция - Прокрутка экрана

Позволяет сделать прокрутку экрана используя клавиши, без использования мышки:

Прокрутка на одну строку:

Прокрутки экрана вверх на одну строку (^E)

Прокрутки экрана вниз на одну строку - (^Y)

Прокрутка на часть экрана или экран:

^F — прокрутка вперед на один экран;

^B — прокрутка назад на один экран;

^D — прокрутка вперед на половину экрана (вниз);

^U — прокрутка назад на половину экрана (вверх).

^ - это CTRL

Сделаем в нашем файле прокрутку экрана, нажимаем сочетание клавиш CTRL + G, данная комбинация клавиши отвечает за показания в текущем файле, в данный момент, какой файл открыт и где мы находимся:

Vim изменит вашу жизнь и сделает проще.

Поиск файлов в VIM

Для поиска файлов в vim используется слеш (/)

Пример:

/pinger

Для перехода по соответствиям используя клавиши n, важный момент, не должна быть большая N, она отвечает за другую команду и раз vim чувствителен к регистру, каждая команда отличается в верхнем и нижнем регистре n и N – это 2 разные команды.

  • n — повторить поиск в том же направлении;

  • N — повторить поиск в противоположном направлении;

  • /Enter — повторить поиск вперед.

Поиск файлов в обратном порядке:

?Enter — повторить поиск назад.

Пример:

?pinger

Смотрим на состояние в командной режиме снизу.

Vim изменит вашу жизнь и сделает проще.

Пример с текстом root:

Vim изменит вашу жизнь и сделает проще.

Режим выделение нескольких строк.

Если мы хотим выделить несколько строк для редактирования/удаления используем для Этого комбинацию клавиш:

Shift + v

При выделении сразу показывается блок.

Vim изменит вашу жизнь и сделает проще.

Построчное выделение текста

Ctrl + v

Vim изменит вашу жизнь и сделает проще.

Команда удаление

Выделяем необходимую область с помощью Shift + v

Нажимаем кнопку d, маленькую, не большую и не русскую кнопку.

Команда отмены

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

Буква u

Команда: скопировать и вставить

  • в начало строки - y
  • вставить текст - p

Пример:

Shift + v + y + p – выделить текст + скопировать + вставить

Команда для повтора другой команды . (точка)

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

Отмена, сохранение, выход из редактора VIM

Vim изменит вашу жизнь и сделает проще.

Если вы не хотите сохранять свои изменения и сразу выйти из редактора:

:q! Enter

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

:e! Enter

Сохранить и выйти из редактора

:wq

Способы вставки текста

  • добавить текст в конец текущей строки - A

  • вставить текст в начало текущей строки - I

  • строчная буква «o») — открыть пустую строку под курсором для текста - o

  • заглавная буква «o») — открыть пустую строку над курсором для текста - O

  • удалить символ у курсора и заменить текст - s

  • удалить текущую строку и заменить текст - S

  • заменить существующие символы новыми символами, начиная от курсора - R

Часть 4. Режим ввода

Режим ввода (Insert Mode) — это один из основных режимов работы в текстовом редакторе Vim, в котором пользователи могут непосредственно вводить текст в документ. В этом режиме курсор перемещается по тексту, и все введенные символы добавляются в документ. Понимание и эффективное использование режима ввода поможет вам лучше управлять процессом редактирования текста.

Переход в режим ввода

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

Буква i

Снизу теперь должно быть:

Vim изменит вашу жизнь и сделает проще.

Данная надпись, означает, что мы перешли в режим ввода, для выхода из этого режима используем ESC

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

Заключение.

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

  • Эффективность и высокая продуктивность благодаря разнообразным режимам работы и клавишным командам.
  • Кастомизация и расширяемость через настройку конфигурации, написание скриптов на Vimscript и установку плагинов.
  • Мощные функции редактирования текста с поддержкой продвинутого поиска, замены и навигации.
  • Надежность и поддержка благодаря активному сообществу и кроссплатформенной доступности.
  • Обучение и развитие навыков редактирования и программирования с помощью обширных учебных ресурсов.

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

Полная документация по Vim и Vimscript

Интерактивные уроки для изучения Vim

Интерактивная игра для изучения Vim

Ресурсы, советы от сообщества Vim

7
27 комментариев