Vim изменит вашу жизнь и сделает проще.
Каждый, кто когда-либо интересовался улучшением процесса написания или редактирования кода, рано или поздно сталкивается с упоминанием Vim или vi. В один из таких моментов, когда вы ищете идеальный инструмент для своей работы, вы можете наткнуться на Vim — на первый взгляд неприметный редактор, который может показаться не таким уж и выдающимся по сравнению с другими, например, с nano. Возникает вопрос: что делает Vim столь популярным? Почему все в интернете так хвалят этот редактор?
Как стало проще вести разработку или редактировать конфигурационные файлы с помощью vim, как же я раньше о нем не знал!!!
Шутки из разряда: ДА КАК ЖЕ ВЫЙТИ ИЗ VIM!!!
Появились не просто так, ведь vim уникален в своем роде и использует 2 разных режима, в зависимости от них, программа решает, что вы хотите сделать в данный момент, поэтому стандартный выход из vim у многих начинающих пользователей вызывает дикое желание бросить все и удалить данный редактор.
Собственно данное вступление было лишь предлогом для начала пути с VIM. Однажды кто-то в интернете сказал такую фразу:
Раньше я был глуп и слеп, но когда открыл для себя этот редактор, всё изменилось. Игнорировать его — значит начать свой путь к краху!
Вступление.
В мире программирования и разработки существуют инструменты, которые выходят за рамки обычных редакторов кода. Они становятся верными спутниками и неотъемлемой частью повседневной работы разработчика. Одним из таких инструментов является редактор Vim. С момента своего создания в 1991 году, Vim зарекомендовал себя как мощный и гибкий текстовый редактор, который позволяет программистам писать код быстрее и эффективнее. Благодаря своей модульной структуре и множеству расширений, Vim предлагает пользователю беспрецедентную степень контроля и персонализации рабочего процесса.
Часть 1. 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 можно автоматизировать рутинные задачи, создавать новые команды и макросы, а также настраивать интерфейс редактора.
Основные особенности 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, необходимо его установить командной:
(данный способ подходит для Debian/Ubuntu)
(данный способ подходит для Fedora/RHEL линуксов)
Как происходит смена режимов в VIM
Для примера редактирования я возьму конфигурационный файл Zabbix
Команды, которые мы можем использовать при запуске редактора vim с файлом:
Данная команда открывает файл в vim, только для чтения:
Параметр -с отвечает за: выполнить <команду> после загрузки первого файла, в нашем случае оказываемся в файле на строке 1130.
Мы попали в командный режим vim
Справа внизу располагает строка состояние, где в данный момент находится наш курсор.
Данный режим отвечает за перемещение по файлу, как правило в нем мы не редактируем файл, но можем кое-что изменить или добавить по необходимости.
Функция - Прокрутка экрана
Позволяет сделать прокрутку экрана используя клавиши, без использования мышки:
Прокрутка на одну строку:
Прокрутки экрана вверх на одну строку (^E)
Прокрутки экрана вниз на одну строку - (^Y)
Прокрутка на часть экрана или экран:
^F — прокрутка вперед на один экран;
^B — прокрутка назад на один экран;
^D — прокрутка вперед на половину экрана (вниз);
^U — прокрутка назад на половину экрана (вверх).
^ - это CTRL
Сделаем в нашем файле прокрутку экрана, нажимаем сочетание клавиш CTRL + G, данная комбинация клавиши отвечает за показания в текущем файле, в данный момент, какой файл открыт и где мы находимся:
Поиск файлов в VIM
Для поиска файлов в vim используется слеш (/)
Пример:
/pinger
Для перехода по соответствиям используя клавиши n, важный момент, не должна быть большая N, она отвечает за другую команду и раз vim чувствителен к регистру, каждая команда отличается в верхнем и нижнем регистре n и N – это 2 разные команды.
n — повторить поиск в том же направлении;
N — повторить поиск в противоположном направлении;
/Enter — повторить поиск вперед.
Поиск файлов в обратном порядке:
?Enter — повторить поиск назад.
Пример:
?pinger
Смотрим на состояние в командной режиме снизу.
Пример с текстом root:
Режим выделение нескольких строк.
Если мы хотим выделить несколько строк для редактирования/удаления используем для Этого комбинацию клавиш:
Shift + v
При выделении сразу показывается блок.
Построчное выделение текста
Ctrl + v
Команда удаление
Выделяем необходимую область с помощью Shift + v
Нажимаем кнопку d, маленькую, не большую и не русскую кнопку.
Команда отмены
Используется для отмены вводимого ранее текста.
Буква u
Команда: скопировать и вставить
- в начало строки - y
- вставить текст - p
Пример:
Shift + v + y + p – выделить текст + скопировать + вставить
Команда для повтора другой команды . (точка)
Чтобы каждый раз не копировать и не вставлять команду, использую точку .
Отмена, сохранение, выход из редактора VIM
Если вы не хотите сохранять свои изменения и сразу выйти из редактора:
Закрытие файла без сохранения изменений
Сохранить и выйти из редактора
Способы вставки текста
добавить текст в конец текущей строки - A
вставить текст в начало текущей строки - I
строчная буква «o») — открыть пустую строку под курсором для текста - o
заглавная буква «o») — открыть пустую строку над курсором для текста - O
удалить символ у курсора и заменить текст - s
удалить текущую строку и заменить текст - S
заменить существующие символы новыми символами, начиная от курсора - R
Часть 4. Режим ввода
Режим ввода (Insert Mode) — это один из основных режимов работы в текстовом редакторе Vim, в котором пользователи могут непосредственно вводить текст в документ. В этом режиме курсор перемещается по тексту, и все введенные символы добавляются в документ. Понимание и эффективное использование режима ввода поможет вам лучше управлять процессом редактирования текста.
Переход в режим ввода
Чтобы войти в режим ввода из командного режима, используйте одну из следующих команд:
Буква i
Снизу теперь должно быть:
Данная надпись, означает, что мы перешли в режим ввода, для выхода из этого режима используем ESC
Данный режим используется для ввода текста, переходим в него, печатаем новую строку, нажимаем ESC и :wq для сохранения и выхода из файла.
Заключение.
Vim — это мощный и гибкий текстовый редактор, который предоставляет пользователям множество возможностей для эффективного редактирования текста и программирования. Основные преимущества Vim включают:
- Эффективность и высокая продуктивность благодаря разнообразным режимам работы и клавишным командам.
- Кастомизация и расширяемость через настройку конфигурации, написание скриптов на Vimscript и установку плагинов.
- Мощные функции редактирования текста с поддержкой продвинутого поиска, замены и навигации.
- Надежность и поддержка благодаря активному сообществу и кроссплатформенной доступности.
- Обучение и развитие навыков редактирования и программирования с помощью обширных учебных ресурсов.
Использование Vim может значительно улучшить ваш рабочий процесс и помочь стать более продуктивным и эффективным разработчиком или редактором текста. Начав с изучения основных команд и функций, вы сможете глубже исследовать возможности Vim и адаптировать его под свои нужды.
Полная документация по Vim и Vimscript
Интерактивные уроки для изучения Vim
Интерактивная игра для изучения Vim
Ресурсы, советы от сообщества Vim