Редактор VIM как пользоваться, инструкция команд
Vim — один из наиболее функциональных текстовых редакторов для интерфейса командной строки. Построенный на основе “vi”, редактора 1976 года, vim мощнее и обладает дополнительными возможностями, сохраняя подход своего предшественника к работе с текстами.
Установка
Редактор есть практически в любом стандартном репозитории каждого дистрибутива Linux. Воспользуйтесь своим установщиком пакетов (например, yum для CentOS):
sudo yum install vim
После этого vim должен корректно установиться.
Запуск Vim
Если не указывать никаких агрументов открывается пустой файл. В зависимости от вашего дистрибутива могут присутствовать представление и информация о лицензии.
Когда вы начнете пользоваться редактором, они пропадут. Чтобы открыть файл, укажите его имя. Например, далее мы создадим файл “newfile” и откроем его в vim.
echo «Это новый файл. Вот вторая строчка, А это третья. Здесь ещё немного текста. Мы будем работать с этим файлом. Это будет очень здорово.» >> newfile
Открытие файла при помощи vim:
Vi / Vim: основы (как выйти из vi, как редактировать текст в vi, как работать в vi)
vim newfile
Режимы работы
Основное отличие vim от многих других редакторов заключается в том, что в нем несколько режимов редактирования, а не один, как в большей части других. В других программах особые функции, например, копирование текста, приводится в действие комбинациями клавиш. В vim для разделения этих функций и набора текста используются разные режимы.
Нормальный режим
Режим по умолчанию, в котором vim находится после запуска. Применяется для быстрой навигации по документу и редактирования: в нем можно копировать, вставлять, перемещать, удалять и изменять текст. Переход из других режимов осуществляется нажатием клавиши «escape». Для набора текста не используется.
Режим вставки
Для набора текста нужно перейти в режим “вставки”. Он похож на интерфейс набора текста многих других программ. Вводимый вами текст появляется на экране в документе, каждая клавиша соответствует своему символу. Перейти в этот режим можно следующим образом:
i — в текущем положении курсора
a — на следующем символе после текущего положения
I — в начале текущей строки
A — в конце текущей строки
Режим визуального выделения
Позволяет визуально выделять текстовые фрагменты. Затем к ним можно применять команды нормального режима для редактирования или форматирования.
v — режим обычного (посимвольного) визуального выделения перемещением курсора вверх, вниз, влево или вправо

V — режим построчного визуального выделения. Строки выделяются целиком перемещением вверх или вниз

[ctrl]-v — режим блочного визуального выделения. Выделяется прямоугольный участок, который можно увеличивать и уменьшать. Позволяет выбирать фрагменты нескольких линий.
Vim — Основы редактора за 5 минут на простых примерах

Перемещение
Вы всегда можете передвигаться по документу стрелками, но vim предоставляет более быстрый и удобный способ. В нормальном режиме для навигации применяются следующие клавиши:
h — перемещение влево
j — перемещение вниз
k — перемещение вверх
l — перемещение вправо
Сначала эти клавиши могут показаться непонятными и неинтуитивными, но они были выбраны потому, что находятся в среднем ряду на стандартной клавиатуре. Это значит, что рука пользователя проходит от положения покоя значительно меньшее расстояние, чем при использовании стрелок.
Также есть дополнительные функции навигации, вот несколько наиболее важных:
gg — переход в начало документа
G — переход в конец документа. Если предварительно ввести номер — переместиться на строку с этими номером
w — перемещение к следующему слову. Если предварительно ввести количество — переместиться на это количество слов
b — перемещение к предыдущему слову. Если предварительно вввести количество — переместиться на это количество слов назад
e — перемещение к концу слова. Если предварительно указать количество — переместиться на указанное количество слов
0 — перемещение к началу строки
$ — перемещение к концу строки
Поиск текста
Что бы найти фрагмент текста, нужно перед текстом поиска ввести слэш «/» и нажать enter
/это
По умолчанию поиск в vim регистрозависимый, для того что бы сделать поиск независимый от регистра, нужно перед текстом ввести следующую комбинацию «/c» /cэто

Если же наоборот нужно сделать явное задание регистрозависимого поиска используйте комбинацию «/C»
/СЭто будет

Что бы найти следующий фрагмент нажмите «n» предыдущий «N»
Редактирование
Редактирование выполняется посредством команд в нормальном режиме. Они очень эффективны в комбинации с командами перемещения. Любая команда из раздела перемещения может задать направление. Например, можно удалить или скопировать одно слово, указав “w” за соответствующей командой.
Рассмотрим наиболее употребимые действия.
Удаление текста
x — удалить символ на позиции курсора
d — удалить в заданном командой перемещения направлении. Например, “dl” удаляет один символ справа
dd — удалить строку
D — удалить все символы от положения курсора до окончания строки
Замена текста
r — заменить символ на позиции курсора заданным после команды символом
c — заменить в заданном командой перемещения направлении. Например, “cb” заменяет предыдущее слово. Для набора текста на замену запускается режим вставки.
C — заменить до окончания строки. Текст на замену набирается в режиме вставки.
Копирование и вставка
y — копировать в заданном далее направлении
yy — копировать всю строку
Y — копировать до окончания строки
p — вставить последнюю скопированную (или удаленную!) строку ниже текущей
P — вставить последнюю скопированную (или удаленную!) строку выше текущей
Дополнительные команды редактирования
u — отменить последнее действие
-r — вернуть последнее отмененное действие
J — присоединить строку ниже к текущей
Командный режим
Используется для продвинутого редактирования, изменения параметров и управления. В нем выполняется сохранение, выход из программы, продвинутый поиск и многое другое. Активируется клавишей двоеточия “:”.
Команды управления
Команды управления задаются вводом “:” перед каждой командой.
:q — выход из программы. Действие не будет выполнена, если не сохранить изменения
:q! — выход из программы с отменой всех изменений, которые не были сохранены
:w — сохранить изменения. При первичном сохранении или сохранении в другой файл укажите имя через пробел
:e — редактировать указанный далее файл
:bn — редактировать следующий файл (если открыто несколько файлов)
:bp — редактировать предыдущий файл (если открыто несколько файлов)
:qw – сохранить файл и выйти
Объединение команд
Как упоминалось выше, эффективность vim обусловлена возможностью строить цепочки разных действий. Лучше всего этот принцип иллюстрируется, если представлять команды vim в виде языка. Клавиши в нормальном режиме играют роль различных частей речи.
Например, для копирования 5 слов представьте эту фразу как команды, которые понимает vim. Это будет выглядеть так:
:y5w (y — копировать, 5 — количество, w — слов)
Удалить текст от текущей позиции до окончания файла:
:dG (d — удалить, G — переход в конец файла)
Также полезно усвоить ряд используемых в действиях vim принципов. Например, сдвоенный символ обычно распространяет действие команды на всю строку. Следующая команда скопирует не один символ, а строку целиком:
:yy
С другой стороны, соответствующая команде заглавная буква часто действует от положения курсора до окончания линии. В случае с изменением текста это будет следующая команда:
:C
Чтобы выполнить операцию с несколькими символами или строками, укажите перед командой число. Например, такая команда заменит весь текст от текущего положения курсора до окончания следующей строки:
:2C
Заключение
Vim — очень мощный инструмент, но рассмотрение многих его функциональных возможностей выходит за пределы этой статьи. Если вы хотите узнать больше, полезно начать со встроенного в vim обучающего интерфейса:
vimtutor
В нем не рассматриваются тонкости, но он позволит вам разобраться в работе vim и освоить основы редактирования.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Похожие записи:
- Firewalld, установка и настройка, зоны, NAT, проброс портов
- Настройка сети в Linux – команда ifconfig
- Утилита wget в Linux
- Перенаправление потоков в Linux. Вывод команды в файл
Источник: itproffi.ru
Vim: текстовый редактор для мастеров
Очень сложная штука, но мы попытаемся объяснить просто.
Вы могли слышать программистские анекдоты типа «Не могу выйти из Vim». На «Амазоне» продаётся электронная книга о выходе из текстового редактора Vim. Одни программисты искренне не понимают, как можно работать в такой страшной среде. А для других это любимый текстовый редактор — настолько любимый, что они тащат его команды и плагины в другие текстовые редакторы, например, в VSCode.
Сейчас попробуем разложить по полочкам, что это за зверь и почему вокруг него такой культ.
Что такое Vim
Vim — это специализированный текстовый редактор для программистов. Он предназначен для работы с большими объёмами кода без использования мыши.
Главная особенность Vim — два режима: режим написания текста и режим команд. В первом режиме вы как обычно пишете код, а во втором молниеносно управляете им. Режимы работают параллельно друг другу и меняются по нажатию клавиш.
Главная сила — в огромном количестве клавиатурных команд, которые помогают быстро редактировать текст. Например:
dd — удалить строку, на которой вы сейчас стоите;
10dd — удалить сколько-то строк, в этом случае 10;
cw — заменить слово на другое;
w, b — курсор вперёд или назад на одно слово;
A — дописать текст в конец строки;
I — Начать вписывать текст в начало строки;
U — вернуть изменения в строке (например, если случайно стёр);
: 10,25 w temp — сохранить кусок документа в файл temp. Конкретно здесь сохранится кусок с 10-й по 25-ю строку.
И таких команд несколько десятков. Всё построено вокруг того, чтобы делать все текстовые дела молниеносно и принципиально без участия мыши.
Зачем редактировать текст без мыши?
У мыши один курсор, которым нужно целиться в мелкие объекты на экране. А пальцев на руках десять, и ими никуда целиться не надо (при должной сноровке). Если у вас выработана мышечная память и вы знаете горячие клавиши (или команды Vim), вы будете редактировать текст быстрее, чем при использовании мыши.
Посмотрите, как удаляет строку среднестатистический пользователь:
- Он отрывает одну руку от клавиатуры.
- Берётся за мышку.
- Выделяет мышкой ненужную строку.
- Нажимает свободной рукой клавишу удаления.
- Возвращает обе руки в исходное положение на клавиатуру.
А так это же действие выполнит пользователь Vim:
- Он жмёт «esc», чтобы перейти в режим команд.
- C помощью навигационных клавиш j и k находит нужную строку.
- Пишет команду dd — удаление строки.
- Жмёт i, чтобы вернуться к редактированию текста.
Пользователь Vim убирает руки с клавиатуры, только чтобы поесть или почесать репу. Всё остальное время он короткими командами обрабатывает текст в несколько раз быстрее, чем любой человек с мышью.
После привыкания работа в Vim сравнима с игрой на гитаре: вы управляете текстом, будто он продолжение вашей руки. Фильмы про хакеров видели? Вот такой эффект.
Кому подходит
Vim считается нестандартным инструментом со множеством недостатков:
- его сложно и долго изучать, поскольку без использования основных команд сам по себе редактор не даёт прироста в скорости;
- у него нет коробочной версии, чтобы можно было установить и сразу решать большинство программистских задач;
- все доступные плагины работают хуже тех, что предлагает любая современная среда разработки.
Vim однозначно не подходит руководителям и тем разработчикам, которые большую часть времени занимаются организационными задачами и мало кодят — не получится быстро редактировать код, если постоянно не тренироваться.
Ещё Vim не подходит новичкам, которые только записались на курсы и ничего не знают о выбранной технологии — нужны хотя бы базовые навыки программирования, чтобы не допускать грубых ошибок при написании кода. Vim тебя не корректирует.
Если вас не испугали перечисленные недостатки и ваша работа связана с постоянным кодингом, то Vim может стать вашим незаменимым помощником.

Как установить
Перейдите на сайт vim.org и поставьте подходящую версию Vim на компьютер. Десктопный редактор — это полигон для тренировок. Здесь вы можете запустить тестовый проект или начать писать текстовые заметки. Основная задача: привыкнуть к новому сочетанию клавиш, научиться быстро переключаться между режимами и перестать пользоваться мышкой с трекпадом.
После установки перейдите в раздел «Справка» и выберите вкладу «Учебник Vim» — это интерактивная обучающая программа и минимум, необходимый для работы с редактором. Учебник состоит из семи уроков, по ходу которых вы познакомитесь с основными командами и сможете медленно обрабатывать код. Чтобы постоянно не возвращаться к учебнику — рекомендуем установить на рабочий стол фирменные обои или распечатать шпаргалку с командами Vim. Когда выучите команды и сможете ими пользоваться без шпаргалок — переходите на следующий этап и попробуйте использовать Vim на реальном проекте.

Добавление Vim в VS Code
Vim поддерживает множество плагинов, которые после установки позволяют превратить старый редактор в аналог современной среды разработки. На наш взгляд, для новичка это не слишком удобно и лучше наоборот — установить Vim в современную среду разработки вроде VS Code.
Откройте VS Code, в боковой панели нажмите на вкладку «Расширения» и вбейте в поиск «Vim» — вам нужно установить плагин vscodevim.vim. Теперь откройте любой файл и попробуйте что-то напечатать — в VS Code должны работать все команды Vim: вы можете в скоростном режиме создавать и редактировать код. Если что-то не работает — перезагрузите программу и попробуйте ещё раз.

Как стать продвинутым вимером
1. Изучите русскоязычную документацию и попробуйте команды, которые могут пригодиться в работе. Если что-то не понимаете или считаете какие-то команды лишними — не тратьте на них время. Vim необъятен, и большинство его возможностей вам не понадобятся — они нужны для специфичных задач.
2. Прочтите список рекомендованной литературы. Во время чтения помните, что лучше всего материал усваивается в том случае, если подкрепить его практикой.
3. Выберите плагины для индивидуальной настройки редактора. Это для тех, кому десктопная версия Vim понравилась больше плагина в VS Code.
Источник: thecode.media
Редактор Vim и как с ним работать

Vim — это текстовый редактор, который можно удобно настроить под себя благодаря расширениям и большому выбору инструментов для пользователя. Он работает в терминале, что даёт возможность разработчикам значительно быстрее выполнять задачи. За счёт командных функций Vim помогает увеличить продуктивность работы. Это выбор профессионалов, которые используют консоли для быстрого и удобного написания кода.
В Linux есть и другие редакторы кода, которые тоже работают в терминале. Например, редактор Vi, на базе которого и создан Vim. У него много удобных функций — можно быстро перемещаться по тексту, пользоваться командами, плагинами. Но Vim в освоении всё же более простой.
А ещё есть редактор Nano, у которого интуитивно понятный интерфейс и есть много функций, свойственных графическим приложениям. Он позволяет вырезать и вставлять, искать и заменять слова и так далее. Его удобно использовать для решения быстрых и простых задач, однако если для программиста в приоритете максимально расширенный функционал, ему всё же стоит присмотреться именно к Vim.
В чём особенность Vim
От многих других редакторов Vim отличается тем, что здесь применяется два основных режима ввода — командный и текстовый. Режимы переключаются вручную. После запуска редактор автоматически открывается в командном режиме. Когда пользователь переключается с одного режима на другой, клавиши клавиатуры начинают работать немного по-другому.
К примеру, при включённом режиме вставки при нажатии клавиши «W» эта буква будет вводиться в соответствующем поле. А если вернуться к командному режиму, то эта же клавиша будет перемещать курсор вперёд на одно слово.
Такие возможности Vim позволяют пользователям обходиться без мыши — при помощи клавиатуры можно и вводить символы, и перемещаться по тексту. Это очень удобно для программистов, так как они постоянно переключаются между редактированием и просмотром кода. При этом им не нужно тратить время на перенос руки с клавиатуры на мышь или трекпад, а затем на перемещение курсора в нужное место и возвращение руки на клавиатуру.
Пользователи могут осваивать Vim и при использовании разных версий IDE, при этом им понадобится соответствующий плагин или расширение. Об этом мы чуть подробнее расскажем дальше в статье.
Начальная практика в Vim
Важно сразу приступать к практике и пробовать выполнять все задачи именно в Vim. Предстоит просмотреть текстовый файл, поправить скрипт Python или сделать какую-то заметку — непременно следует делать это всё в Vim. И уже на этом этапе разработчику пора понемногу отучать себя от использования мыши (трекпада).
Вместо заучивания множества клавиатурных сокращений нужно учиться самостоятельно анализировать и искать путь решения при выполнении любой задачи в Vim. А именно — искать самый короткий порядок нажатия клавиш для достижения конкретной задачи. Через несколько недель пользователь автоматически запоминает нужные команды.
Чтобы как можно быстрее освоить Vim, нужно использовать вышеупомянутые клавиатурные сокращения Vim повсюду. Пользователям браузеров Firefox, Chrome, Brave, Edge стоит установить расширение Vimium. Оно как раз предназначено для того, чтобы применять в деле клавиатурные сокращения Vim. С их помощью можно быстро перемещаться и отучаться таким образом от работы с мышкой.
Тем, кто использует какую-либо версию IDE, рекомендуется найти плагин или расширение для имитации клавиатурных сокращений Vim. Пользователям разных видов IDE от JetBrains хорошо подойдёт ideavim. А любителям работать с VS Code нужно будет найти расширение VSCodeVim. Для Jupyterlab тоже есть хороший вариант — нужно установить jupyterlab-vim, чтобы включились клавиатурные сокращения Vim.
При запуске редактора можно сразу начать работать с нужным файлом и применить к нему нужную опцию, набрав:
$ vim опции имя_файла
Можно применить следующие опции:
- -R — открыть в режиме «только чтение»;
- -g — включить графический режим;
- -w — сохранить все действия в файл;
- -b — воспользоваться двоичным режимом, чтобы редактировать исполняемые файлы;
- -x — активировать шифрование файла при записи;
- -d — найти различия в файлах (потребуется указать несколько файлов для открытия);
- -C — включить режим совместимости с Vi;
- -n — отключить функцию автоматического сохранения для восстановления файла при ошибке;
- «+команда» — эта опция отвечает за выполнение команды после запуска редактора;
- +номер — перемещение курсора к определённой пользователем строке после запуска;
- +/шаблон — найти нужный участок в шаблоне и переместить курсор к его началу.
Командный режим
Все введённые символы редактор будет воспринимать как команды. При этом можно дублировать команды, используя цифры. К примеру, если перед введением буквы h нажать цифру 4, то курсор переместится влево не на 1 символ, а сразу на 4. Команды для перемещения по тексту:
- h или l — переместить курсор влево или вправо на 1 символ;
- j или k — переместить курсор на 1 строку вверх или вниз;
- w или b — переместить курсор на 1 слово влево или вправо;
- H — уйти в нижнюю часть экрана;
- G — пролистать до конца файла;
- zz/zt/zb — перемещать по экрану строку с курсором в середину/верх/низ;
- Ctrl+u или Ctrl+d — прокрутить область просмотра в верхнем или нижнем направлении на полстраницы.
Команды для вставки и копирования:
- p или P — вставить текст после курсора или перед ним;
- y — скопировать символ;
- yy или Y — скопировать целую строку.
Команды для отмены и удаления:
- u — отменить последнее действие;
- U — отменить последнее действие в указанной строке, где стоит курсор;
- d — удалить символ;
- dd — удалить строку целиком;
- D — удалить всё, что находится на участке от курсора до конца строки;
- dt — удалить часть текста, которая находится между местом курсора и следующим вхождением конкретного символа;
- ciw — удалить конкретное слово и сразу переключиться в режим ввода;
- C — удалить текст начиная от места курсора и до конца строки, затем снова автоматически происходит переход в режим ввода.
Некоторые команды не работают без указания дополнительных условий. Например, для удаления четырёх символов слева от курсора, нужно задать не просто d, а d4h, — тут мы добавили цифру (количество символов) и команду h (она перемещает курсор влево на 1 символ).
Ещё несколько полезных команд:
- v — выделить текст;
- ggvG= — выровнять текст во всём файле (переместиться в начало, переключиться на режим VISUAL, выделить весь текст документа, настроить отступ выделенных строк);
- . — повторить ещё раз последнюю команду;
- n или N — продолжить поиск вперёд или назад;
- ~ — переключить регистр у символа, который выделен или на котором находится курсор;
- /шаблон — искать вхождение;
- %s/шаблон/заменить — заменить первое слово вторым;
- ZZ — сохранить и выйти из редактора.
Ещё раз напомним — не нужно специально заучивать команды. И вообще, лучше посмотреть на них немного под другим углом, ведь они как раз хорошо показывают, что в программе работать удобно и быстро. И мышью пользоваться не обязательно.

Режим вставки (текстовый)
Чтобы перейти в этот режим из командного, нужно использовать команду i. Причём она не просто включает его, но и сразу вставляет текст в область до курсора. Любой введённый символ редактор не будет считает командой, а вставит его в текст. Чтобы обратно перейти в командный режим, нужно нажать клавишу «Esc».
В текстовый режим можно переключиться и с помощью других команд:
- I — вставить текст с начала строки;
- a — вставить текст в область после курсора;
- A — вставить текст в конец строки;
- r — заменить символ;
- R — заменить несколько символов;
- o — создать строку ниже строки с курсором;
- O — создать строку выше строки, где находится курсор.
В этом режиме тоже можно настроить программу под себя, чтобы выполнять задачи быстрее. Пользователь может задать полезные для себя сочетания клавиш. Например, сделать так, чтобы при нажатии открывающейся скобки сразу же добавлялась закрывающая скобка, а курсор помещался внутри между ними. Кстати, перечисленные команды также можно дублировать при помощи цифр.
Режим командной строки
Для включения этого режима пользователь, находясь в командном режиме, должен нажать двоеточие (:). Теперь нужно задать конкретную команду для поиска или замены — ввести её и потом нажать клавишу «Enter». Как только она выполнится, Vim автоматически вернётся в командный режим. В режиме работают следующие команды (в начале не забываем ставить двоеточие):
- e файл — создать новый файл;
- r файл — вставить содержимое этого файла в текущий файл;
- w — сохранить изменения;
- r! — задать выполнение команды оболочки и вставку полученного ответа в Vim;
- buffers — просмотреть открытые файлы;
- set переменная=значение — задать значение переменной для управления процессами редактора;
- q — выйти из Vim;
- q! — выйти из Vim, не сохранив изменения.
Визуальный режим
Этот режим похож на вышеописанный. С помощью команд, используемых вместе со стрелками и командами навигации, пользователь может выделять части текста и затем использовать для них команды командного режима. По сравнению с ним визуальный режим удобнее, потому что здесь разработчик сразу видит, к какому блоку текста применится команда.
Команды визуального режима:
- v — переход в посимвольный режим;
- V — переход в построчный режим;
- CTRL-V — переход в режим визуального блока.
Про клавишу «Caps Lock»
Обычно эта клавиша мешает, но её можно использовать для своих целей, так как она находится в удобной области клавиатуры. Речь идёт о превращении «Caps Lock» в клавишу «Esc». В редакторе Vim как раз такая клавиша нужна для того, чтобы переключать режимы.
Для разных ОС своя инструкция по превращению клавиши «Caps Lock» в «Esc»:
- Windows и WSL — понадобится программа uncap;
- MacOS — можно просто использовать системные настройки;
- Linux — здесь пользователям нужны StackOverflow и Google.
Для пользователей Линукс хорошо подходит setxkbmap — она позволяет сделать из «Caps Lock» ещё одну клавишу «Esc». Затем нужно просто включить автозапуск setxkbmap при запуске системы:
setxkbmap -option caps:escape
Немного о vimtutor
Для изучения программы в неё встроили справочную систему vimtutor. В принципе, её использовать нет необходимости, особенно если пользователь уже испытал редактор на практике. Но заглянуть туда можно.
Для запуска справки нужно включить командный режим и набрать:
Затем нужно будет нажать :q для выхода из справочника.
Примечание. Пользователям Windows стоит пользоваться специальной подсистемой для Линукса — WSL (Windows Subsystem for Linux). Она хорошо подходит не только для изучения vimtutor, но и для дальнейшей работы с редактором.
Практика в сочетании с vimtutor помогают пользователям быстро освоить этот не совсем стандартный редактор. Он может показаться несколько непростым тем, кто привык работать в оконном режиме, но благодаря ежедневному использованию Vim каждый сможет освоить его за считанные недели.
Запоминаем главное
Vim помогает работать быстрее и не использовать мышь или трекпад.
Лучше всего изучать Vim на практике, применяя команды без их заучивания.
В Vim есть 4 основных режима — командный, текстовый, режим командной строки и визуальный.
Клавишу «Caps Lock» можно преобразовать в клавишу «Esc» и использовать её для переключения режимов.
Можно использовать встроенный в редактор справочник vimtutor для более детального изучения программы.
Источник: jino.ru
Программа vim что это

МЕРОПРИЯТИЯ
QAtalks: Tools https://proglib.io/p/exploring-vim» target=»_blank»]proglib.io[/mask_link]
Как освоить Vim?
Осваивать Vim — это, пожалуй, страшно. Или, точнее, очень страшно. Речь идёт об изучении совершенно необычного подхода к редактированию кода, не говоря уже о работе с простым текстом. Многие несправедливо обвиняют тех, кто выбирает Vim, в том, что они впустую тратят время.
Я со всей уверенностью могу заявить о том, что Vim позволил мне повысить эффективность в деле написания программ. Работать стало удобнее (ниже я расскажу об этом более подробно). Я никому не хочу навязывать Vim, но очень рекомендую освоить этот редактор всем, кто занимается программированием, работает в сфере Data Science, в общем — тем, кто так или иначе пишет и редактирует некий код.

Если вам очень хочется узнать о том, стоит ли вам использовать Vim, и о том, кто и для чего им реально пользуется — взгляните на этот материал (кстати, не позвольте его названию, «Не пользуйтесь Vim», ввести себя в заблуждение). Ещё можете посмотреть это видео, которое, кстати, подготовил сам Люк Смит.
А теперь, учитывая всё вышесказанное, предлагаю поговорить о том, что такое, на самом деле, Vim!
Что такое Vim?
Отвечая на этот вопрос, я хочу ещё раз повторить то, что было сказано в самом начале статьи: «Vim — это редактор, реализующий совершенно необычный подход к редактированию кода, не говоря уже о работе с простым текстом».
В Vim имеется несколько «режимов работы», переключение между ними приводит к изменению функционала клавиатурных клавиш (например, клавиша W в режиме вставки, что неудивительно, позволяет ввести букву w, а вот в нормальном режиме она позволяет перемещать курсор вперёд на одно слово). При таком подходе клавиатура используется и для ввода символов, и для перемещения по тексту. Другими словами — при работе в Vim не нужна мышь.
Это очень хорошо в тех случаях, когда нужно постоянно «переключаться» между редактированием и просмотром кода. Обычно программисты именно так и работают. Если вы раньше никогда не пользовались Vim для работы с программным кодом, то вы даже не замечаете того, как много времени тратится на то, чтобы снять руку с клавиатуры и потянуться к мыши (или к трекпаду), затем — на то, чтобы переместить курсор туда, куда нужно, и наконец на то, чтобы вернуть руку на клавиатуру и приступить к вводу текста (в общем — тратится очень много времени).
Конечно, на то, чтобы привыкнуть к Vim, нужно некоторое время. И это — не прямая замена какой-нибудь IDE или редактора вроде VS Code. Но можно сказать, что Vim позволяет тому, кто умеет им пользоваться, значительно ускорить работу с кодом. Кроме того, интересно то, что его более простым аналогом является Vi — стандартный текстовый редактор большинства Unix-подобных систем, работающий в терминале.
Как научиться работать в Vim?
▍1. Используйте vimtutor
Меня не удивляет то, что в каждом руководстве по Vim рекомендуется начинать изучать этот текстовый редактор с vimtutor . Поэтому я, без зазрения совести, поступлю так же. Нет нужды играть ни в какие «Vim-игры» (хотя они и довольно интересны), или прибегать к программам, помогающим запоминать бесчисленные клавиатурные сокращения. Надо просто установить vimtutor и, когда найдётся 10-15 минут свободного времени, прорабатывать этот официальный учебник по Vim. И не пытайтесь сразу же запомнить все клавиатурные сокращения Vim; вы запомните их постепенно, снова и снова проходя уроки vimtutor .
Хочу отметить, что Windows-пользователям я рекомендую использовать WSL (Windows Subsystem for Linux, подсистему Windows для Linux) и для прохождения vimtutor , и, в целом, для работы с Vim. Лично я в Windows с Vim не работал, поэтому не могу обещать того, что при работе с ним в этой ОС всё будет точно так же, как в Linux.
▍2. Постоянно пользуйтесь Vim
Практика — это путь к совершенству. Это — главный принцип, которого стоит придерживаться при изучении чего-то нового. Изучение Vim — не исключение. Поэтому, пока вы изучаете Vim с помощью vimtutor , пользуйтесь этим редактором для решения реальных задач.
Используйте Vim как можно чаще. Нужно просмотреть текстовый файл? Запустите Vim. Хотите что-то по-быстрому изменить в Python-скрипте? Примените Vim.
Делаете какие-то заметки? Делайте их с помощью Vim. В общем, полагаю, вы меня поняли. И каждый раз, когда работаете в Vim, всегда задавайтесь вопросом о том, какова наиболее эффективная последовательность нажатий на клавиши (то есть — наиболее короткая последовательность), позволяющая решить текущую задачу.
И попутно постарайтесь сократить использование мыши.
▍3. Интегрируйте с Vim всё что сможете
Используйте клавиатурные привязки Vim везде, где это возможно. Начните делать всё, что сможете, «в стиле Vim». Например, если вы пользуетесь браузером, основанным на Chromium (Chrome, Brave, Edge), или браузером Firefox, подумайте об установке расширения Vimium, которое позволяет пользоваться в браузере клавиатурными сокращениями Vim, отвечающими за перемещение по документу (H, J, K, L и так далее).
Если вы пользуетесь для работы с кодом некоей IDE — найдите плагин или расширение для добавления Vim-привязок в соответствующую среду. Например, пользователи PyCharm (или любой IDE от JetBrains) могут воспользоваться ideavim. А пользователи VS Code (в 2021 году этот инструмент уже ближе к IDE, чем к обычным текстовым редакторам) могут прибегнуть к расширению VSCodeVim.
В Jupyterlab можно включить привязки Vim для встроенного текстового редактора путём установки jupyterlab-vim, что позволит полностью эмулировать Vim в ячейках блокнотов.
Постарайтесь органично интегрировать Vim в свою рабочую среду и несколько недель поработайте по-новому. Я могу говорить о том, что после нескольких VSCode-сессий в стиле Vim мне стало гораздо удобнее пользоваться этим редактором. А ещё — я очень рад избавлению от мыши!
▍4. Перенастройте клавишу Caps Lock (но это необязательно)
Самая бесполезная клавиша, расположенная в самом лучшем месте клавиатуры. Именно так можно охарактеризовать клавишу Caps Lock. Поэтому советую превратить Caps Lock в Escape. Если вы интересуетесь Vim, то уже должны знать о том, что клавиша Escape используется в Vim для переключения режимов. Я очень советую тем, кто стремится к максимальной эффективности, воспользоваться вышеописанной модификацией.
Пользователи Windows и WSL могут использовать uncap — программу, которая превращает клавишу Caps Lock в Escape.
Пользователям macOS в плане переназначения клавиш повезло — они могут решить эту задачу, прибегнув к системным настройкам.
Если вы работаете в Linux — настроить всё как надо вам помогут StackOverflow и Google. Лично я (заслуженный пользователь Arch Linux) использую утилиту setxkbmap , с помощью которой делаю из Caps Lock ещё одну клавишу Escape. А потом включаю автозапуск утилиты при запуске системы:
setxkbmap -option caps:escape
▍5. Глубже изучите Vim
После того, как вы привыкнете к Vim и немного его освоите, придёт время для более глубокого освоения этого редактора ради дальнейшего повышения эффективности своего труда. Ниже я, основываясь на собственном опыте, привожу список самых полезных (и, пожалуй, уникальных для Vim) команд, применимых в нормальном режиме работы:
- ZZ — сохранить документ и выйти из Vim. Красивая команда.
- zz, zt, zb — прокрутка текста, перемещающая строку с курсором, соответственно, в центральную, в верхнюю или в нижнюю часть области просмотра.
- Ctrl+u, Ctrl+d — прокрутка области просмотра вверх или вниз на полстраницы.
- ciw — (Change Inside Word) удаление текущего слова и автоматический переход в режим вставки.
- C — удалить текст от позиции курсора до конца строки и перейти в режим вставки.
- dt — (Delete To ) удалить текст от позиции курсора до следующего вхождения указанного символа.
- ~ — (тильда, на стандартной клавиатуре вводится клавишей, находящейся под Escape) переключение регистра (верхний/нижний) текущего или выделенного символа.
- . — (точка) повтор последней команды Vim.
- ggvG= — (перейти в начало файла, войти в визуальный режим, выделить весь текст до конца, выровнять выделенные строки) автоматическое выравнивание текста во всём файле.
Если вас интересуют другие команды Vim — посмотрите это замечательное и довольно длительное видео, демонстрирующее прохождение уроков vimtutor , которое записал Вим Дизель (шучу — это всё тот же Люк). Тут собрано множество полезнейших советов по Vim.
Итоги
Вероятно, сейчас вы уже достаточно хорошо освоили Vim и значительно повысили свою скорость работы с кодом. И вы наконец сможете похвастаться перед пользователями Reddit или перед коллегами своими отточенными навыками редактирования текстов, когда в ходе работы вам не приходится убирать руки с основной части клавиатуры. Когда вы достигнете подобного уровня, вы можете развиваться в сфере Vim и дальше. Например — в следующих направлениях:
- Можно установить Neovim и поэкспериментировать с ним (это — отрефакторенный форк Vim, рассчитанный на высокий уровень расширяемости и на поддержку графического интерфейса).
- Можно перенести функционал Vim в терминал или интерпретатор командной строки, воспользовавшись vim-airline.

Vim-airline, тема violet ( источник )
- Можно попробовать некоторые из популярных Vim-плагинов.
Источник: habr.com