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

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

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

Перфокарты и строковые редакторы


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


С увеличением мощности и объёма накопителей компьютеров перфокарты становились всё более неэффективными, поэтому программирование эволюционировало. Со временем люди отказались от перфокарт, после чего настала эпоха «строковых редакторов». Отличным примером такого редактора является ed. Также стоит упомянуть предшественника ed под названием QED.

Работа со строковым редактором


Если у вас Linux или Mac OS, откройте терминал и введите ed. Откроется простой строковый редактор, который поприветствует вас полной тишиной. Если вас поразила эта находка (меня поразила), то можете немного поэкспериментировать с редактором. Чтобы вводить файл, наберите a и нажмите Enter, а затем пишите свой текст. Нажав ., а затем 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.

Отец Vim по имени Vi


После ed появился em«editor for mortals» («редактор для простых смертных»). Его функциональность схожа с ed, но он «менее загадочен» и создан для обычных людей. На основе кода em Билл Джой разработал ex, что расшифровывается как «extended ed» («расширенный ed»)! Он стал важным этапом, потому что наряду с предыдущими режимами у ex был режим visual («визуальный»), отображающий на экране весь файл. Вы можете спросить — а почему об этом не подумали раньше? В те времена визуальное отображение файлов на компьютерах было довольно сложным трюком, и многие считали его излишней тратой ресурсов. Однако в какой-то момент преимущества перевесили возражения, и отображение редактируемого файла на экране стало современным стандартом.


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

Игра в имитацию


Пару лет спустя появилось множество клонов vi (мне больше всего нравится Elvis). Одним из них был «Vi Improved», созданный Брамом Моленаром — это имя вы видите, когда запускаете vim в терминале. Редактору vim удалось выделиться на фоне множества клонов vi. Брам взял клон vi под названием STEVIE (хорошее имя, кстати), и заметил, что в нём не хватает множества команд vi. Он добавил несколько новых функций и обеспечил его совместимость vi, после чего выпустил его под названием «Vi Imitation» (позже название сменилось на «Vi Improved»). Название vim появилось в версии 2.0, выпущенной в 1993 году, и сохраняется по сей день. Но как vim добился своей славы? На то время он имел множество великолепных возможностей и был совместим с vi. Функции и совместимость сделали его привлекательным для многих.

Полвека работы


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


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

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

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

Заключение


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

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

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



На правах рекламы


Аренда облачного сервера на Linux или Windows — выбирайте одну из предустановленных ОС, либо устанавливайте из своего образа.

Подписывайтесь на наш чат в Telegram.