Найти в Дзене
Блокнот математика

Рубрика "Секреты Вим". Зачем, почему и что такое

Поздравляю, коллеги: это юбилейная сотая заметка! Если считать "Позвольте представить: Вим", но не считать Путеводитель по рубрике. Или наоборот. И я адресую эту заметку тем, кто с Вимом еще не знаком: она рекламная. О том, что можно. О том, сколько всего можно!

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

Всякие user-friendly и WYSIWYG несовместимы с предельной эффективностью. Место водителя в автомобиле доведено до идеала, но необученный человек, скорее всего, даже не тронется с места. А уж рабочее место пилота самолета...

Где Кнопка Старт??!
Где Кнопка Старт??!
Кстати, какой-нибудь фотошоп вполне себе оконный и дружелюбный, но без вводного курса никто там ничего сделать не сможет. Потому что серьезный инструмент и осваивать надо серьезно.

Далее, часто ли нам надо редактировать голый текст, без шрифтов и картиночек? Кому как. Кроме конфигов, есть еще исходный код программ. А иногда редактировать его надо где-то "там" по ssh или ftp, и оконных удобств не предусмотрено изначально. Есть статьи/книги/диссертации в ТеХ. Есть входные данные для расчетов в текстовой форме. Есть выдача расчетных программ в текстовой форме, причем это и результаты, и диагностика, и отладочная информация. Есть документация, которую можно написать и в Гугл-доках, но проще и удобнее держать ее поблизости. И всё это надо читать, править, анализировать. И желательно не тратить на редактор много ресурсов, потому что их есть куда потратить.

Теперь посмотрим на сам процесс работы с текстом. Иногда (редко) мы начинаем с чистого листа набирать текст. Чаще мы правим уже готовый текст, вставляя новые абзацы, функции, таблицы, строки. Или же редактируем текст, исправляя отдельные слова, строки, конструкции. А то и просто читаем, ищем фрагменты, запоминаем позиции, перемещаемся...

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

Аналогия. Вы мастер-строитель, и вы отдаете команды помощнику: не "поставь гвоздь острием вот сюда и наноси удары молотком по шляпке", а "забей гвоздь в точку на два дюйма левее". "Обшей стену вагонкой". И даже "построй домик по проекту 42".

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

Например, вам не надо самому искать закрывающую фигурную скобку, а можно скопировать или удалить блок кода просто как "этот блок кода". Вам даже нет необходимости самому залезать в include-файлы, Вим может сделать это за вас.

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

Повторяю: Вим знает кое-что о тексте, с которым работает. Числа в тексте — это числа, и их можно увеличить или уменьшить. Вим знает про предложения и абзацы, комментарии и блоки кода, ключевые слова и include-файлы.

Вот Карта команд нормального режима. Каждая клавиша что-то делает, и это правильно. Не обязательно это всё помнить, но зато если надо - то оно под рукой.

Конечно, если вы запустите Вим, то увидите что-то малопривлекательное: черный (или белый) прямоугольник с мигающим курсором. Надо знать, как добраться до возможностей. А они обширны! Вот неполный список.

Обо всём этом я уже рассказывал (см. ссылки), либо скоро выйдут материалы, либо я ещё напишу. По моей рубрике "Секреты Вим" Вы сможете освоить любую тонкость (рано или поздно доберемся до всего).

В общем, Вим позволяет делать именно то, что вам надо. Отлаживать код на Фортране, писать статью в Техе, писать роман о космических пиратах, сочинять стихи на итальянском или делать упражнения на иврите, набрать пару строк хираганой, готовить параметры для расчета, анализировать гигабайтный файл отладочной выдачи, писать заметки для Дзена.

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

Тоже требует освоения. Но зато потом работает эффективно. Хотя принцип действия-то старый, придуман задолго до Вима.
Тоже требует освоения. Но зато потом работает эффективно. Хотя принцип действия-то старый, придуман задолго до Вима.

Если захотите освоить Вим, материалов в сети очень много. Начните с интерактивного учебника (он идет в поставке с Вим): vimtutor. Запустите с командной строки и пройдите небольшой курс. Хорошие книги:

  • Learning the vi and Vim Editors. 7th ed. (Arnold Robbins, Elbert Hannah, and Linda Lamb, 2008). По этой книге я изучал Вим, в основном. Очень хорошая!
  • Есть она же в виде Pocket Reference. Как справочник.
  • Hacking Vim. A cookbook to get the most out of the latest Vim editor (Kim Schulz, 2007). Это не учебник, а сборник рецептов: дельных советов тем, кто Вим уже знает. Кое-что полезное узнал. И вам рассказал.
  • Drew Neil - Practical Vim Edit Text at the Speed of Thought, 2nd Edition - 2015. Эта книга — учебник, но совсем простой, с картинками. После первой книги списка уже ни к чему...

Добро пожаловать в наш клуб!

Каналы коллег, которые от души рекомендую.

А вот подборка научно-популярных.

PS: Эта заметка вышла 14 марта 2022 и неоднократно обновлялась. С тех пор вышло много заметок:

И как пойдет!

Заглядывайте.

Каналы коллег, которые от души рекомендую.

А вот подборка научно-популярных.