Pull to refresh

Comments 39

Про "тяжеловесность" Emacs борода тоже уходит в прошлый век, ну это уже прям неэтично так шутить, особенно когда смотришь сколько отъедают современные IDE и средства обработки текста :)

В общем и целом, как Vim с Emacs хоронили, так и будут пытаться хоронить, их это не задевает. Врядли они окажутся в топе по использованию, но у них достаточное обширное и что любопытно, пополняющееся новичками коммьюнити, чтобы успевать адаптироваться под меняющиеся условия мира. IDE приходят и уходят, Emacs с Vim остаются :) Для меня оба этих инструмента -- это примеры успешного и качественного софта.

ну это уже прям неэтично так шутить

Нафаршированный emacs на win без WSL, к сожалению, намного медленнее любой IDE, с которой доводилось сталкиваться. Отдельная боль для пользователей win – magit.

да, под Windows и нефаршированный emacs медленный. Поэтому я пользуюсь linux и macos: для меня это основная причина выбора OS

Не соглашусь, хотя на Windows не пробовал но осуждаю :) Мой опыт это Linux и меньше Mac -- определенно, после других IDE, Emacs выглядит очень легковесно, скорость работы без нареканий даже на всяком убитом железе . Вообще же, в нём хватает старых кривых плагинов, которые что-то синхронно и медленно пытаются делать, но полезные и используемые массово плагины поддерживаются сообществом, эволюционируя в том числе по производительности. Последние лет пять много чего перевели на асинхронный режим, хотя в целом асинхронное исполненение кода в Emacs по-прежнему выглядит нестандартно. Тут бы движок бекенда радикально сменить, вероятно еще через десятки лет к этому придут :)

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

Однако, ковыряясь в коде на Elisp, нередко замечал всякое типа, "если Windows, то...", подозреваю неэффективность может прятаться в таких ветках, где даже внешние утилиты вызываются на разных системах разные. Всё же основное использование Emacs исторически на unix-системах.

А так, у меня к примеру установлено >300 пакетов, первый старт Emacs с ними ~2 секунды (но это дистрибутив Doom Emacs, где пакеты предкомпилируются после установки). Дальше новые окна запускаются как клиенты к emacs-server и всю рабочую сессию запуски практически мгновенные за доли секунды.

Основной - emacs (clojure и все остальное) , по-быстрому - vim.

На свиндовс, когда в нем изредка бываю - notepad++.

И да, для явы - eclipse, а для питона и ардуинки. - vscode.

Так и живем :)

Teledildonics mode как пример плагина в Emacs: https://youtu.be/D1sXuHnf_lo?si=uo3sNGG4EJdtz9-c -- в зависимости от количества скобок в текущем Lisp-выражении увеличивается амплитуда вибрации девайса, можно оценить все ли скобки закрыты. Глубже, еще глубже, aах, бесконечная рекурсия!

UFO landed and left these words here
UFO landed and left these words here

Вы открыли мне мир! :) Я как в прошлом веке научился таки вместо kill -9 использовать ":wq" (или ":wq!" для тяжелых случаев), так им и пользуюсь. Уже привычкой стало не трогать Ctl-C или Ctl-D в Vi :\

Признайтесь, вы ведь не пользуетесь ни тем, ни другим, поэтому имеете весьма отдаленное представление о теме статьи. Вы не понимаете того, о чем пишете и просто пересказываете шутки, найденные на просторах сети, при этом потерявшие актуальность. Хоть бы atom на vscode заменили...

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

Как то после просмотра видосов от DistroTube замотивировался, решил стать крутым программистом и писать "hello world" на emacs. После трехдневной настройки emacs (скачивание чужих готовых сэтапов) и изучения понял что надо изучать программирование а не редактор. Может они и быстрее, продуктивнее и едят мало памяти но писать на pycharm или vscode для меня все таки удобнее. А на слабых машинах на работе (да тут все еще стоит Pentium 4 с 2мя гигами) стоит Sublime.

После трехдневной настройки emacs

О, это ерунда. Emacs настраивают десятилетиями!..
Кроме шуток, кастомизабельность – это часть магии и философии emacs. Одновременно осваивать несколько сложных концепций за раз, в целом, идея не очень. Поэтому, изучая программирование лучше использовать знакомые (или с низким порогом входа) инструменты, а новые инструменты осваивать на понятной предметной области.
С точки зрения разработчика emacs вне конкуренции для всяких lisp-ов (в том числе, clojure), для использования концепции Literate programming, а так же как альтернатива Project Jupyter в виде org-babel.
Кроме этого он силен и славен экосистемой, построенной вокруг org-mode, позволяющей настроить свой собственный космолет по управлению личной базой знаний с интеграцией всего от блоггинга до проджект-менеджмента с хранением всего состояние в человеческом текстовом формате.
В качестве введения мне больше всего понравился цикл DoomCasts.

Благодарю за ссылки. Ну мне еще осиливать вышмат и введение в информатику. Так что наверное в будущем когда то тоже вкачусь в войну emacs vs vim) а так по курсам там предлагают Spyder вот и буду пока на нем писать

Ага, это вероятно самый частый аргумент в спорах о выборе IDE: всё готовое против конструктора. Так то оно так, но когда десятилетия жизни уходят на работу с кодом и сопутствующие задачи, начинаешь ценить инструменты, которыми делаешь эту работу. И понимаешь, что проще вникнуть и настроить, чем всю жизнь делать какие-то действия неудобным и длинным путем, просто потому что авторы "мейнстримного" продукта не предусмотрели другого пути. В Emacs (как и полагаю в Vim) изначально пути нет вообще, его прокладываешь себе сам, но раз проложив бегаешь по нему очень быстро :) Поэтому, наш выбор -- только Linux, только Emacs! :)

Кажется, что в среде вимеров если раньше говоря vi подразумевали vim, так сейчас - говоря vim подразумевается neovim

Говоря vi подразумеваю только vi. vim, neovim, хреноvim, зачем всё это ? От текстового редактора требуется только текстовый редактор, как и на каждую простую задачу требуется простой и понятный тул. FreeBSD 13.3-RELEASE - операционная система в которой всё просто и понятно.

Неовим это буквально все функции нынешних иде в терминале с широкой кастомизацией, а на деле не жрёт и 10% от современных иде. а vi это так, где нибудь на облаке быстро файлик поправить, однако для меня важно чтоб все важные тулзы были под рукой, зачем мне бегать в другое окно в терминале, если могу очень много всего в одном?

В нвим и tab комплиты, плагины с гитом, автоформатирование при сохранении, линтеры, указ на ошибки при настроенном lsp, telescope, так зачем отказываться от ускорения рабочего процесса? Может это все можно как то в vi настроить, но чего ради если есть удобные форки вима с широкой поддержкой комьюнити, и даже внутри этих форков есть свои предлагаемые конфигурации-скелеты, куда просто докидывать и до настраивать плагины в .lua (мне удобен nvchad, например). Мне искренне интересно в чем смысл такой атомарности что редактор только редактирует, если можно ускорить скорость девелопмента создав современное легковесное иде внутри терминала? Вот я стараюсь по конвенциям писать, там их все не выучить быстро, а при автоформате сразу видно где и как что поменялось, и откладывается потихоньку в мозге, с vi я бы узнал конвенцию того или иного языка в той или иной ситуации?

vim, neovim, хреноvim, зачем всё это

А зачем vi тогда если есть ex? Или зачем ex если есть ed?

Вы правильно уловили суть. Я использую менее десятка команд редактора vi/ex уже на протяжении 30+ лет. Зачем всё остальные привороты мне совершенно не понятно. Я как-то пытался освоить пару-тройку модных-молодежных команд в надежде что это упростит мою работу, но так и не смог их запомнить, да и применения им не нашел.

А вывод vi --version | head -5 можете показать?, может я действительно не уловил суть.

Просто уже лет 10 не видел другого вывода, кроме

VIM - Vi IMproved  ....

Речь же не про то, что обязательно нужно пользоваться "наворотами", а про то, что "vim" уже давно стало словом нарицательным, в след за тем, как ранее таким же нарицательным было "vi"

rz@butterfly:~ % /usr/bin/vi --version
vi: illegal option -- -
usage: ex [-eFRrSsv] [-c command] [-t tag] [-w size] [file ...]
usage: vi [-eFlRrSv] [-c command] [-t tag] [-w size] [file ...]

rz@butterfly:~ % /usr/bin/vi -e
/tmp/vi.gPKtSAy0sS: new file: line 1
:version
Version 2.2.1 (2023-09-25) The CSRG, University of California, Berkeley.
:q

rz@butterfly:~ % freebsd-version
13.4-RELEASE-p3

vi это хардлинк на ex, который на самом деле nex/nvi. Это стандартный редактор в *BSD поставляющийся "из коробки".

rz@butterfly:~ % ll /usr/bin/vi
-r-xr-xr-x  6 root  wheel  457888 Feb 13 00:04 /usr/bin/vi*
rz@butterfly:~ % ll /usr/bin/ex
-r-xr-xr-x  6 root  wheel  457888 Feb 13 00:04 /usr/bin/ex*
rz@butterfly:~ % ll /usr/bin/nvi
-r-xr-xr-x  6 root  wheel  457888 Feb 13 00:04 /usr/bin/nvi*
rz@butterfly:~ % ll /usr/bin/nex
-r-xr-xr-x  6 root  wheel  457888 Feb 13 00:04 /usr/bin/nex*Recjxt

Выдержка из man страницы:

Vi is a screen oriented text editor. Ex is a line-oriented text edi- tor. Ex and vi are different interfaces to the same program, and it is possible to switch back and forth during an edit session. View is the equivalent of using the -R (read-only) option of vi. This manual page is the one provided with the nex/nvi versions of the ex/vi text editors. Nex/nvi are intended as bug-for-bug compatible re- placements for the original Fourth Berkeley Software Distribution (4BSD) ex and vi programs. For the rest of this manual page, nex/nvi is used only when it's necessary to distinguish it from the historic implementations of ex/vi.

Как я уже писал выше, я пользуюсь этим дедовским нифига не IMproved редактором уже четвертый десяток лет и использую очень ограниченный набор его фич. Зачем нужны наворотый введнные в в vim (и тем более в neovim) мне совершенно не понятно.

Никто у Вас его не отнимает и никто не принуждает пользоваться чем-то иным, но и поддерживать неолуддизм вида "зачем все это" кажется тоже никто не будет (я так точно).

Еще раз повторюсь, что речь в начале треда изначально шла про то, что "vim" уже давно стало словом нарицательным, в след за тем, как ранее таким же нарицательным было "vi" восприятии. Много раз слышал, что мол "пользуюсь вимом", а по факту - neovim.

Выражение "пользуюсь вимом" слышу впервые, от Вас. А вот "пользуюсь редактором vi" попадается часто.

Не менее хардкорный tcsh. От того же автора, что и vi:

AUTHORS
       William Joy
         Original author of csh(1)
       J.E. Kulp, IIASA, Laxenburg, Austria
         Job control and directory stack features
       Ken Greer, HP Labs, 1981
         File name completion
       Mike Ellis, Fairchild, 1983
         Command name recognition/completion
       Paul Placeway, Ohio State CIS Dept., 1983-1993
         Command line editor, prompt routines, new glob syntax and numerous
         fixes and speedups
       Karl Kleinpaste, CCI 1983-4
...

Чтобы осовременить архаично лайтовое содержание статьи добавлю актуальных ссылок, на ресурсы о современном GNU/Emacs, а не о том Emacs который воображают себе пользователи разных "современных IDE" :P К сожалению не помогу ссылками на Vim ибо практически им не пользуюсь, тут пусть местные вимеры подскажут. И в любом случае вимеры все сгорят в аду В общем вы поняли на какой я стороне.

  • Учебные материалы от System Crafters: https://systemcrafters.net/guides/#gnu-emacs -- у них там всякое по подписке, но с сайта просто см. ссылки на уроки и подкасты на Youtube. Там же про всякое сопутствующее в Lisp-style, как дистрибутив GNU/Guix и прочую linux-альтернативщину :)

  • Living an awesome life by Sacha Chua https://sachachua.com/blog/ -- блог гиковой филлипинки, который она ведет уже два десятилетия.

  • https://www.reddit.com/r/emacs/ + https://www.reddit.com/r/emacsporn/ -- понятно было, что на реддите этого не могло не быть )

Популярные must have расширения, ради которых стоит всё это изучить:

Из трех компонентов выше можно построить как минимум бекап мозга с файловыми аттачами и версионированием :)

Рекомендуемое по личному опыту:

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

Из последнего, чем начал пользоваться только в этом году: https://github.com/s-kostyaev/ellama + https://github.com/ahyatt/llm + llama.cpp (но тут можно и внешнего провайдера подключить) -- с некоторыми навыками программирования на Elisp можно достраивать под себя LLM-ассистентов под самые разные задачи (в том числе для написания нового кода на Elisp!). Не ощущал большой пользы от нейросетей в их чатовой инкарнации, пока не обнаружил интеграции с Emacs, просто теперь много всякой рутины делается локальной LLM на видеокарте, без утомительных промптов, поскольку один раз настроив их можно добавлять как новые команды в Emacs: как выделить кашу из текста и сделать markdown-таблицу, перевести на другой язык, поревьюить код. В готовом виде это же имеется в том же Jetbrains плагинами к разным "AI"-провайдерам, но в Emacs это удобно доделывать самому, сочетая в командах код Elisp с работой LLM под свои конкретные задачи. Ну опять жe emacs doctor получил более интеллектуальную форму :)

И напоследок, старая шутка про GNU/Emacs, которую почему-то упустили в статье: https://xkcd.com/378/
Если что это не шутка, just type "M-x butterfly" в редакторе.

Я мнил себя богом vim... пока не запустил r torrent. Помогите, как оттуда выйти пока я не выкачал весь интернет!!!

Все почему-то говорят о сабже исключительно в контексте IDE, хотя они такими и не являются by design.

Пробовал перейти на neovim (все еще по фану иногда пишу в нем). К сожалению мне не подошел из-за слабого навыка слепой печати и мелких недоработок.

Sign up to leave a comment.

Articles