0004 — Как я пришёл к Emacs

Содержимое страницы

Notepad++

Во время учёбы я часто пользовался Notepad++. Мне этот редактор нравился тем, что он непрерывно развивался, умел подсвечивать синтаксис и довольно быстро работал на моём компьютере. Потом однажды он после установки начал показывать в заголовке приложения бегущую строку. Быстрый поиск дал информацию о том, что сайт взломан, исходный код редактора подправлен, и в заголовке выводилась какая-то повест очка.

AkelPad

«Пора валить» — подумал я, и переехал на AkelPad. Это был травмирующий опыт жёсткого минимализма. Да, этот редактор был ещё более быстрым, а вместе с тем и менее удобным для меня.

Я на нём недолго просидел.

NetBeans

Когда в 2013 устроился на работу программистом, открыл для себя NetBeans. Какая там была версия? 6, кажется? Или я последний раз пользовался 7-ой? Уже не важно. Важно то, что эта штука была создана для разработки на Java, но умела работать с PHP и JavaScript, если поставить соответствующие плагины. Просидел довольно долго, однако, в какой-то момент поймал себя на мысли, что стал тупеть — автоподсказки это хорошо, но когда я сижу и жду срабатывания автокомлита вместо того, чтобы написать имя модуля или библиотеки, это плохо. Привыкание было медленным и постепенным, однако, слезть с редактора было просто.

Sublime Text

Потом, кажется, я увидел на конференции Sublime Text. Тему monokai я и сейчас использую в Emacs. Единственный минус этого редактора — цена. Безусловно, он стоит свои $100, однако, я в то время зарабатывал 25 000 рублей в месяц, и не мог себе такое позволить. Пришлось искать аналоги.

Atom

В 2014-м, кажется, я заметил Atom. Отличный редактор, красивые темы, множество плагинов, стабильная работа. А вот возможности работать на удалённом сервере или легко восстановить настройки я в нём не нашёл. Может, плохо искал, а может, поленился написать скрипт типа такого:

apm install <имена плагинов, тысячи их> && cp ~/<файл конфига> <целевая папка>

В общем, удалось пересадить коллегу с FAR Editor на Atom, однако, сам я на нём не задержался. Ещё, кажется, плохо виртуальные окружения Python работали.

VIM

К Emacs я подходил несколько раз. Сначала пытался действовать по инструкциям из интернета. Было сложно и больно. Тогда я ударился в другую крайность — VIM. VIM хороший. Чтобы выйти из него, надо:

  1. Нажать ESC.
  2. Ввести команду:
    • :wq — чтобы выйти с сохранением сделанных правок;
    • :q! — чтобы выйти, отменив все сделанные изменения.

Очень скоро стало ясно, что шутки про VIM, который умеет портить текст и пищать — ни хрена не шутки. Просидел месяц или два, достаточно настрадался. Снова попробовал взять штурмом Emacs.

Emacs

Линус Торвальдс — великий человек, без преувеличения. Он создал самую популярную в мире систему контроля версий Git и ядро самой популярной в мире ОС для серверов Linux. И он использует VIM.

Другой авторитет, мнение которого для меня важно — Ричард Столлман, он же RMS. Он использует текстовый редактор Emacs, разработанный им ещё в 70-х. За эти годы многое в Emacs осталось по-старому. Нарпимер, графический режим является всего-лишь эмуляцией, обращающейся к текстовому интерфейсу, однако, и всяческие новшества в редактор тоже попадали.

Очень удобно, в отличие от VIM, сделано управление пакетами. Есть стандартный пакет package.el, предоставляющий минимальные средства. Однако, его вполне достаточно, чтобы закрыть подавляющее большинство потребностей по управлению расширениями редактора. Сюда я отношу три задачи:

  • установка;
  • обновление;
  • удаление.

И со всеми package.el справляется превосходно. А в Sublime Text очень долго для установки похожего плагина надо было выполнять код во строенной консоли. Помните? В VIM установка дополнений требует установки дополнения типа Pathogen. Удобно, да?

В то же время, редактор умеет работать в текстовом и графическом режимах, используя один и тот же конфиг. Я оценил это на нынешней работе, когда порой приходится что-то делать на удалённых серверах. Обычно там Ubuntu + VIM, но когда нужно сделать что-то действительно сложное, я ставлю Emacs и свой конфиг.

В отличие от VIM, Emacs уже давно умеет в многопоточность и работу с мышью. В Neovim всё это тоже есть… Но мне это уже не нужно.

В отличие от Sublime Text, он не просит денег.

В отличие от NetBeans и Eclipse IDE он не весит полгигабайта и не тащит за собой JRE. Потребление RAM тоже вполне умеренное. Хотя, конечно, кто в 2021 году следит за этим?

Да, у меня не сразу получилось допилить конфиг до нормального состояния. Я и сейчас порой провожу над ним эксперименты. Однако, в целом плюсы этого редактора для меня здорово перевешивают его недостатки (а их, поверьте, достаточно).