Короткая прогулка по истокам Vim и тому, почему Vim так популярен сегодня

Вы, наверное, слышали о Vim, всемогущем текстовом редакторе, который есть повсюду и где люди время от времени попадают в ловушку. Если вы слышите от своего местного разработчика DevOps, что Vim отличный и быстрый, вы, вероятно, подумали о том, чтобы попробовать. Но как до этого дошло? Как Vim-craze в какой-то момент захватило мир?

Если мы посмотрим на опрос StackOverflow за 2019 год о самых популярных средах разработки, Vim по-прежнему находится на 5-м месте, его используют около 25% веб-разработчиков. Пятое место довольно неплохо, учитывая, что первый выпуск Vim произошел почти 30 лет назад (да, вы все правильно прочитали, Vim впервые был выпущен в 1991 году).

Чтобы лучше понять, почему и как Vim стал (и остается) таким популярным, лучше разобраться в истоках того, как все это началось. До vim было vi, до vi было ed. Что это за слова из двух или трех букв и что за этим стоит? Давайте погрузимся и разберемся.

Перфокарты и линейные редакторы

Сегодня может быть очевидно, почему у нас есть текстовые редакторы и полноценная IDE (интегрированная среда разработки), но что у нас было до этого? Как вы, возможно, знаете, ранние формы программирования включали вставку бумаг с дырками (перфокарты) внутрь компьютера. Порядок, в котором вы их разместили, был очень важен. Например, это изображение размером 4,5 мегабайта данных, сложенное в 62500 перфокарт. Представьте, что вы бросаете это и вам нужно снова сортировать.

Перфокарты оказались немного неэффективными по мере того, как мощность и объем памяти компьютеров росли, а программирование развивалось. В конце концов, люди отошли от перфокарт, и наступила эра линейных редакторов. Прекрасным примером этого является ed редактор. Не забудем упомянуть редактор QED, предшественника ed.

Использование линейного редактора

Если вы работаете в Linux или Mac OS, откройте терминал и введите ed. Вы получите простой строковый редактор, который встретит вас тишиной. Если вы удивлены этим открытием (как и я), попробуйте немного поиграть с ним. Чтобы записать файл, начните набирать a и нажимать Enter, затем напишите свой текст. Набрав . после ввода, вы выйдете из режима добавления (вставки). Затем, чтобы записать файл, вы можете ввести w myfile.txt и нажать Enter и, наконец, написать q и Enter для выхода.

# ed a Hey there! I am using ed right now, how cool. OK, that's enough. . w myfile.txt 64 q

Как вы могли заметить, есть сходство между работой с ed и с сегодняшним vim. Если вы используете Vim, можно сказать, что вы быстро освоите ed.

Папа Вима - Ви

После ed последовал em - редактор для смертных. Он может делать то же самое, что и ed, но он менее загадочен и предназначен для обычных людей. На основе кода em Билл Джой разработал ex, что означает расширенный редактор! Это было важно, потому что у ex, помимо предыдущих режимов, был режим visual, который показывает весь файл на вашем экране. Вы, должно быть, думаете - а как они не думали об этом раньше? В то время показать эту штуку на компьютерах было довольно сложно, и некоторые считали это потерей ресурсов. Но на тот момент преимущества перевесили возражения, и открытие файла на экране во время его редактирования стало сегодняшним стандартом.

Так родился режим vi sual. Позже исполняемый файл vi был представлен в операционных системах, но вы все еще можете получить доступ к ex командам, набрав: в vi / vim. ex был выпущен в 1976 году, а исполняемый файл vi - в 1979 году. 40 с чем-то лет назад! Но как vim ожил?

Имитационная игра

Через пару лет появилось много vi клонов (мой любимый - Элвис). Одним из них был Vi Improved, созданный Брамом Мооленааром - имя, которое вы теперь видите, когда пытаетесь открыть vim в своем терминале. В большом пуле различных vi клонов vim удалось выделиться. Брэм использовал клон vi под названием STEVIE (красивое имя, кстати) и заметил, что в нем отсутствуют многие команды vi. Он добавил несколько новых функций и сделал его совместимым с vi и выпустил его под названием Vi Improved. Название vim появилось в версии 2.0 в 1993 году и остается таким до наших дней. Но как vim добился известности? В то время у него была куча отличных функций, и он был совместим с vi. Возможности и совместимость привлекли множество людей к его использованию.

Полвека вкладов

Если вы посмотрите на основные команды для перемещения в Vim: h, j, k и l, все они уходят корнями из старых vi дней. Клавиатура Билла Джоя в то время не имела курсоров для перемещения. Кроме того, ключ ESC был на месте сегодняшнего ключа TAB. Взгляните, как это было раньше:

Команды для замены текста вроде :%s/text_to_replace/text_to_replace_it_with/ тоже из той эпохи. Необходимость набрать: для выполнения команды была ответом на полное молчание ed при первом входе в редактор.

Я пытаюсь сказать, что vim - это результат более полувекового накопления хороших идей, в котором приложено много усилий для обеспечения обратной совместимости. Да, вероятно, благодаря полезным функциям Vim прославился. Но что держало Vim в курсе, так это совместимость практически со всем, о чем вы можете думать. Где бы вы ни использовали SSH сегодня, вы можете запустить сеанс Vim или, по крайней мере, сеанс Vi. Это сильный (если не самый сильный) момент, чтобы научиться этому в наши дни.

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

Последние мысли

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

Может быть, у вас есть режим Vim внутри вашей IDE или VSCode, кто знает. Я не говорю, что Vim должен заменить то, что вы используете сейчас, но попытки изучить и настроить его улучшат ваши навыки и способности. С другой стороны, не имеет значения, какой редактор вы используете, важно то, что вы с ним делаете!

В конце концов, это вопрос поиска подходящего редактора (инструмента), который заставит вас делать то, что вы делаете, еще лучше.

Если вам понравился пост в блоге, вы можете поделиться им со своими друзьями и коллегами ниже:

Спасибо за чтение, ждем вас в следующем, ура 🍻

Первоначально опубликовано на https://pragmaticpineapple.com.