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 и всю рабочую сессию запуски практически мгновенные за доли секунды.
JetBrains WebStore???
Interview with a VIM Enthusiast
Interview with an Emacs Enthusiast
Основной - emacs (clojure и все остальное) , по-быстрому - vim.
На свиндовс, когда в нем изредка бываю - notepad++.
И да, для явы - eclipse, а для питона и ардуинки. - vscode.
Так и живем :)
Teledildonics mode как пример плагина в Emacs: https://youtu.be/D1sXuHnf_lo?si=uo3sNGG4EJdtz9-c -- в зависимости от количества скобок в текущем Lisp-выражении увеличивается амплитуда вибрации девайса, можно оценить все ли скобки закрыты. Глубже, еще глубже, aах, бесконечная рекурсия!
Ни разу за 30 лет не нажимал Ctrl-C в vi/vim. "Век живи - век учись" (с) Поручик. ;)
Признайтесь, вы ведь не пользуетесь ни тем, ни другим, поэтому имеете весьма отдаленное представление о теме статьи. Вы не понимаете того, о чем пишете и просто пересказываете шутки, найденные на просторах сети, при этом потерявшие актуальность. Хоть бы 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.
Ага, это вероятно самый частый аргумент в спорах о выборе 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
Так у Вас как будто ex за vi скрывается
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.
А шеллом у вас хардкорный sh? Без всяких симлинков?
Не менее хардкорный 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
...
nyan cat очевидно emacsовый mode.
Чтобы осовременить архаично лайтовое содержание статьи добавлю актуальных ссылок, на ресурсы о современном 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/doomemacs/doomemacs (или для эстетов https://www.spacemacs.org/)
...вообще их конечно много больше, а часть из указанных имеют альтернативы, которые не хуже, даю ссылки для привлечения внимания, разобравшись и настроив эти плагины можно получить очень удобную в навигации и для редактирования среду.
Из последнего, чем начал пользоваться только в этом году: 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 (все еще по фану иногда пишу в нем). К сожалению мне не подошел из-за слабого навыка слепой печати и мелких недоработок.
А почему на скрине vim 9.0, который вышел в 2020+ году? А в подписи 1996 год?
del
Vim vs. Emacs: древняя битва, наполненная безумными фактами