LINUX.ORG.RU

Emacs 27.1

 , , ,


5

5

Свершилось, братие и сестрие!

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

В данном выпуске:

  • встроенная поддержка чисел целых чисел произвольного размера (в Emacs встроен великолепный калькулятор с поддержкой RPN и алгебраических вычислений)
  • встроенная поддержка JSON
  • для рендеринга шрифтов теперь используется библиотека HarfBuzz
  • добавлена поддержка табов
  • работа с изображениями без использования ImageMagick
  • Lexical-binding используется по-умолчанию (если вы не писали на Lisp данный пункт можно смело игнорировать)
  • поддержка дополнительного конфига для ранней инициализации (это может быть интересно пользователям spacemacs)
  • поддержка спецификаций XDG на размещение файлов в домашней директории (наконец-то!)

Лично меня особенно радует последний пункт, хотя изменения и не ограничиваются перечисленным.

Ценители архи-боянов приглашаются в комментарии - делать ставки кто первый «пошутит» про отсутствие в GNU/Emacs текстового редактора: когда ещё доведётся услышать шутку, которая старше большинства посетителей ЛОРа?

>>> Подробности

★★★★★

Проверено: alpha ()

Накатил через flatpak. Особой разницы не заметил (в том числе и в шрифтах). Но, может быть, это и к лучшему. Мой монстрообразный .emacs не сломался.

rupert ★★★★★
()
Ответ на: комментарий от BOSS-NIGGER

Открой, например, мегабайтовый json с подсветкой синтаксиса. VSCode прожуёт такое за секунды, а емакс у меня на полчаса завис.

hateyoufeel ★★★★★
()
Ответ на: комментарий от hateyoufeel

Открой, например, мегабайтовый json с подсветкой синтаксиса.

я бы открыл если бы у меня он был

мб linum-mode был включен? он вообще все тормозил.

BOSS-NIGGER
()
Ответ на: комментарий от BOSS-NIGGER

я бы открыл если бы у меня он был

Скачай, например, dev-версию AngularJS. Она как раз около мегабайта весит.

мб linum-mode был включен? он вообще все тормозил.

Нет. Но даже если и да, чувак, если в редакторе нумерация строк вешает этот редактор нахрен, то зачем такой редактор вообще нужен? Я тут участвовал в паре тредов, где местные фанаты емакса говорили, что я его просто неправильно использую. Но это всё фигня. Суть в том, что emacs почти полностью написан на однопоточном elisp, и это корень многих его бед.

hateyoufeel ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Vim это только тестовый редактор, который в виде пакета evil-mode встроен в Emacs. А вот Emacs в vim встроить нельзя, так что он хуже :)

stalkerbss
()
Ответ на: комментарий от hateyoufeel

Нашел самое большое что там было на 180кб compile.js, никаких лагов. 26.3.

https://github.com/angular/angular.js

а linum-mode заменили на быстрый display-line-numbers или как то так

EDIT

а, это ж js а не json, ладно пох раз уже и так починили ^^

BOSS-NIGGER
()
Последнее исправление: BOSS-NIGGER (всего исправлений: 1)
Ответ на: комментарий от ugoday

А сколько тысяч расширений существует для «Atom/Visual Code»?

это сравнение уровня «а сколько пакетов в дебиане», которое как бы показывает что все есть. только на деле все говно :(

Rastafarra ★★★★
()
Ответ на: комментарий от loz

Например табы в браузере становятся слишком мелкими и некликабельными довольно быстро

А емакс-то тут при чём? В нём, конечно, есть браузер, но такой проблемы я там не замечал.

zabbal ★★★★★
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

Я вбросил

Ты даже вбрасываешь настолько скучно и бесталанно что это все игнорируют.

zabbal ★★★★★
() автор топика
Ответ на: комментарий от zabbal

Ты даже вбрасываешь настолько скучно

Нашёл чем похвастаться. Отточил это умение до мастерства? Зачем? Хочется больше внимания мужиков?

anonymous
()

Тут очень часто сравнивают емакс с вскодом, мол последний современный молодежный и много расширений. В общем как по мне они находятся приблизительно на одном расстоянии от условной точки «удобно» только диаметрально противоположно. Если в емаксе когда ты его устанавливаешь ничего нет и нужно включать, устанавливать и конфигурить то вскод больше похоже на интернет без адблока. Только установив ты открываешь какой-то жс/питон/хтмл файл, ставишь курсор куда угодно в строку, вводишь любой символ и понеслась - 9000 окон с подсказками по делу и больше без, советы установить расширение от васяна которое не упустит шанса поклянчить донат. Успевать только жать ескейп и тыкать в крестик закрытия очередного всплывающего окна. Напоминаю что введен в текст только один символ. После второго тебя попросят оценить плагин, поделиться с другом, поставить лайк, подписаться на канал ну и так далее. В каталоге с расширениями вообще ад и израиль.

В общем в сумме у меня меньше времени уходит на установку и допил сабжа чем на отключение и поиск способов отключения всей ненужной фигни в вскоде

anonymous
()
Ответ на: комментарий от anonymous

«В общем в сумме у меня меньше времени уходит на установку и допил сабжа чем на отключение и поиск способов отключения всей ненужной фигни в вскоде»

Толсто, бро. Отключить ненужности в VS Code - дело пыры кликов и пары строчек в конфиге. Ну буквально.

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

anonymous
()
Ответ на: комментарий от hateyoufeel

Код на таких задачах очень даже виснет. Я такое открываю в Саблайм Текст.

anonymous
()
Ответ на: комментарий от anonymous

Отключить ненужности в VS Code - дело пыры кликов и пары строчек в конфиге

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

в вскоде же надо: отключить глобально, отключить для типа файла, отключить в плагине(ах) (если это отключается, если нет попенсорс же - пулреквест ко-ко-ко) которые этот тип файлов юзают.

насчет морального устаревания ну прям даже не знаю. редактировать буковки в тексте тоже морально устарело?

anonymous
()
Ответ на: комментарий от ugoday

опыт с «Atom/Visual Code» на хорошие инструменты.

это опыт с «большим количество всего» под практически любой «хороший инструмент».

у нас тут вооооооот столько плугов — так себе аргумент.

Rastafarra ★★★★
()

Поддержку С++11 добавили, или еще пару десятков лет подождать?

anonymous
()

Почитав комментарии в треде, у меня создается впечатление, что лоровцы понятия не имеют что представляет собой vscode, а рассуждают так, будто пользовались им хотя бы с месяц. Для начала о себе: 5 лет на emacs, 2 на vim, еще год на emacs+evil и последние полтора на vscode с vim плагином. Если вимом можно пользоваться из коробки, то emacs я перекраивал свой с самого нуля, начиная с исправления человеконенавистнических биндов, заканчивая полностью своей обвязкой пакетов строк где-то на 10 тысяч elisp.

Если коротко, то у emacs огромное количество проблем, которые просто так не решить. Во-первых, elisp банально медленный. Во-вторых, его однопоток блокируется любой нетривиальной операцией, вызывая перманентный лаг в сотни миллисекунд. Это две основные причины почему vscode быстрей и гораздо более отзывчивей, чем emacs. В-третьих, emacs действительно морально устарел. Вся эта эмуляция вывода в терминал в графическом режиме, при этом невозможность подключиться клиентом по сети без проброса иксов, все эти насаждаемые концепты, делающие вид, что на дворе до сих пор 1985 (посмотрите на каких хаках построен multiple-cursor, к примеру), довольно-таки паршивенькие пакеты (зато как их много!), включая распиаренные встроенные, вроде tramp и *term (сколько же эти два мне нервов попортили). Особенно меня забавляют комменты на https://lwn.net/Articles/819452/ типа «Нуу, а что если мы все на схеме перепишем? Тогда-то точно взлетит?»

Попробовав vscode, я с великой радостью и одновременно сожалением открыл, что все это время я пытался сделать из emacs тот самый vscode (еще до того, как он существовал). Радость потому что все, что я хотел уже давно было сделано на отменном уровне. Печаль от осознания, что я убил несколько лет своей жизни, занимаясь полной фигней в виде написания своей собственной недо-IDE поверх лисп-машины. Забил гвоздь в крышку гроба emacs выход code-server, который превращает vscode в self-hosted cloud IDE — теперь достаточно с любого тостера на планете зайти в браузере на свой https://domain.name и продолжить разрабатывать ПО, используя ресурсы сервера для IntelliSense, сборки/тестов, отладчика, CUDA контекстов для своей софтины etc., браузер только отрисовывает текст и менюшки (с нулевой latency в отличие от ssh/vnc). Org-mode только полноценного нет, но лично для меня он оверкилл, мне хватает индексируемых заметок в Markdown.

Разумеется, vscode можно и нужно полностью управлять с клавиатуры, есть довольно неплохая эмуляция vim с популярными плагинами (easymotion, surround, sneak etc.) Есть отличный встроенный CtrlP: фаззи матчинг по файлам, по символам, встроенным командам в духе M-x). Отличная поддержка и интеграция LSP, достаточно одним кликом установить плагин для нужного языка. Великолепный API для плагинов, TS сам по себе довольно годный язык, отменнейшая документация. Все работает крайне плавно, вся отрисовка аппаратно-ускорена, все ненужные свистелки-перделки отключаются в настройках (учитесь у vscode как нужно делать настройки), вся телеметрия отключается одним параметром командной строки сервера, все настоящий опен сорс, в конце концов. Самое сложное в переходе это было побороть навязанный имаксом стокгольмский синдром («Я пять лет это дерьмо пытался привести в человеческий вид, и все ради чего?») и попытаться как следует разобраться (https://code.visualstudio.com/docs/editor/codebasics) в чем-то новом.

anonymous
()
Ответ на: комментарий от Gentooshnik

У меня наоборот почему-то. Что я делаю не так? Всё равно сижу на емаксе сейчас, потому что для vscode нет многих расширений.

hateyoufeel ★★★★★
()
Ответ на: комментарий от zabbal

Табы в емаксе как ты написал добавили как я понял это табы как в бразуере так вот они становятся неюзабельны при открытии большого количества табов, так понятно?

loz ★★★★★
()
Ответ на: комментарий от anonymous

Для начала о себе: 5 лет на emacs, 2 на vim, еще год на emacs+evil и последние полтора на vscode с vim плагином.

А еще ты дочь офицера. Анонимная, конечно. :)

В-третьих, emacs действительно морально устарел.

Умиляет «морально устаревший» емакс в сравнении с редактором в браузере.

Великолепный API для плагинов

И через 10 лет в VSCode не будет плагинов уровня орг и магит, просто протому, что у него всего лишь API для плагинов, а emacs дает доступ ко всей своей кодовой базе. А через 20 лет VSCode скорее всего уже лет 9 как загнется и юная хипстота будет вовсю нахваливать новый революционный редактор написанный на самой тормозной технологии, которую найдут в те далекие от нас времена. Собственно, всегда были более популярные редакторы - TextMate, Sublime, Atom, теперь вот новую свинку гоняют по деревне. Только где они все теперь? Задумайся о вечном, анон :)

ptarh ★★★★★
()
Ответ на: комментарий от anonymous

умеет очень много крытых штук, которых в Код нет и не будет. С другой стороны, он морально устарел.

Поясните, пожалуйста.
PS. Я емаксом пока не пользуюсь, но всё думаю с эклипса переходить...

Shadow ★★★★★
()
Ответ на: комментарий от anonymous

обвязкой пакетов строк где-то на 10 тысяч elisp.

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

Во-первых, elisp банально медленный.

И в чем это проявляется? Какую задачу elisp решает медленно?

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

с 26

https://www.gnu.org/software/emacs/manual/html_node/elisp/Threads.html#Threads

ну типа да, не тру многопоток, но и не прямо однопоток, наверное примерно как пистон

посмотрите на каких хаках построен multiple-cursor, к примеру

Его хотя бы смогли написать как плагин. Смогли бы такое сделать на вскод?

довольно-таки паршивенькие пакеты (зато как их много!)

Пакеты как пакеты. Или у пакетов в вскоде не бывает багов?

emacs действительно морально устарел

Да скорее мейнтейнеры устарели. Почитал мейлинг лист я недавно… Одни топтания на ровном месте. Заретски тот еще старый пердун. Столлман мимокрокодилит в основном.

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

Плагинов это разумеется не касается, но все же говорить что сам по себе емакс устарел морально - ну хз, хз.

code-server, который превращает vscode в self-hosted cloud IDE — теперь достаточно с любого тостера на планете зайти в браузере на свой https://domain.name и продолжить разрабатывать ПО, используя ресурсы сервера для IntelliSense, сборки/тестов, отладчика, CUDA контекстов для своей софтины etc., браузер только отрисовывает текст и менюшки (с нулевой latency в отличие от ssh/vnc).

Это прикольно, тут не поспоришь. Хотя далеко не всем это нужно.

Рассказал бы хоть чего не хватает в вскоде, что в нем плохо, для большей объективности.

BOSS-NIGGER
()
Ответ на: комментарий от Shadow

Поясните, пожалуйста. PS. Я емаксом пока не пользуюсь, но всё думаю с эклипса переходить…

Наверное имеется в виду то, что поддержку c++11 они уже десятилетие пилят. И это не потому что не хотят, а потому что не могут. Архитектура поддержки языков крива. Точнее ее нет. Была реализация «как олучилось», она и осталась в качестве архитектуры.

anonymous
()
Ответ на: комментарий от BOSS-NIGGER

https://www.gnu.org/software/emacs/manual/html_node/elisp/Threads.html#Threads

ThreadSanitizer (TSan) quickly shows that Emacs’ threading implementation has many data races, making it completely untrustworthy. Until this is fixed, nobody should use Emacs threads for any purpose, and threads should disabled at compile time. https://nullprogram.com/blog/2018/05/31/

Еще лет 20 подождать нужно.

anonymous
()
Ответ на: комментарий от anonymous

А потом еще 30 чтобы как пофиксили, все пакеты переписать по-человечески :-)

anonymous
()
Ответ на: комментарий от anonymous

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

кто нибудь уже кидал эту ссылку в мейлинг лист / баг трекер?

BOSS-NIGGER
()
Ответ на: комментарий от anonymous

А, понятно. Как я понимаю, у VSCode, IDEA и Eclipse во многом похожие архитектуры, поэтому такое количество плагинов с поддержкой.

Shadow ★★★★★
()
Ответ на: комментарий от hateyoufeel

У меня наоборот почему-то. Что я делаю не так?

Откуда я знаю? У меня же не наоборот.

Gentooshnik ★★★★★
()
Ответ на: комментарий от hateyoufeel

Открой, например, мегабайтовый json с подсветкой синтаксиса. VSCode прожуёт такое за секунды, а емакс у меня на полчаса завис.

Открыл 40-мегабайтовый json (177871 строк, выхлоп bear make про проекту). Открылся сразу, но курсор залип секунд на 6. Однопоточный elisp тут не при чем. Для emacs большие файлы не проблема, проблема - файлы с длинными строками (конкретно в моем файле часты строки за 1400 символов). Если у тебя весь json в одну строку, то да, верю, что тормозит и на мегабайтном.

anonymous
()
Ответ на: комментарий от anonymous

Если у тебя весь json в одну строку, то да, верю, что тормозит и на мегабайтном.

Кстати да, возможно что и так. Выложи куда-нибудь свои 40 мегабайт? Я проверю.

hateyoufeel ★★★★★
()
Ответ на: комментарий от hateyoufeel

Я не вправе светить имена файлов и структуру проекта. Кстати, я попробовал только что его же открыть через find-file-literally (т.е. без подсветки, в fundamental-mode), открылся мгновенно. VSCode подсвечивает json-синтаксис?

anonymous
()
Ответ на: комментарий от anonymous

Кстати, я попробовал только что его же открыть через find-file-literally (т.е. без подсветки, в fundamental-mode), открылся мгновенно

Ну ясен хрен.

VSCode подсвечивает json-синтаксис?

Подсвечивает, свистит, пердит и даже форматирует код без проблем.

hateyoufeel ★★★★★
()
Ответ на: комментарий от ptarh

Я в целом согласен с вашим посылом, но относительно «emacs дает доступ ко всей своей кодовой базе» у меня есть сомнения. Аудит всех 5k+ пакетов для emacs если и проводился при приёмке их в elpa.gnu.org, то явно происходит недостаточно регулярно. Т.е. я запуская код каких-то непонятных людей из интернета под своим пользователем. А это уже даже не дыра, а тришкин кафтан какой-то.

Хотелось бы чтобы появилось возможность запускать сторонний код в песочнице с явно заданными привилегиями.

ugoday ★★★★★
()
Ответ на: комментарий от hateyoufeel

Подсвечивает, свистит, пердит и даже форматирует код без проблем.

Ага. Когда собсвенные конфиги в json, то не поддерживать его было бы странно.

anonymous
()
Ответ на: комментарий от ugoday

Под «доступом к кодовой базе» я имел ввиду, что я могу посмотреть код любой функции, запустить или (ре)эвалуировать код на лету - спустя 36 лет это все еще уникальная фича, забавным образом. Поэтому все эти рассуждения про «великолепные костылиAPI для плагинов» очень забавны.

Не знаю, есть ли тут какое легкое решение, кроме «не запускать пакеты» - даже мейнейнеры ELPA открещиваются, про MELPА и говорить нечего. Решение с песочницей не особо помогает, если не просматриваешь весь код аддона - допустим, разрешил я плагину для org доступ к FS - выглядит разумно, но кто мне гарантирует что он после этого не утащит все, до чего дотянется? Как быть с его апдейтами? Я также, если честно, не думаю, что эта проблема хоть чем-то лучше на VSCode, по крайней мере дают те же советы.

Наверное, самый разумный вариант засунуть весь emacs в песочницу на уровне оси, но моя личная выжимка после n лет работы с песочницами в macOS такова - это достаточно часто мешает мне использовать софт по его назначению. Если бы я лазил на сервер, на котором лежат миллиарды евро, через emacs, то я бы, наверное, просто сделал профиль без всяких пакетов.

ptarh ★★★★★
()
Ответ на: комментарий от loz

как я понял это табы как в бразуере так вот они становятся неюзабельны при открытии большого количества табов

А, кажется понял про что ты. Емаксовские табы вовсе не обязаны включать вообще все открытые буферы или даже все буферы конкретного фрейма. Просто потому что емакс выполняет множество различных приложений - соответственно нет смысла группировать вместе вкладку eww и вкладку irc-клиента например.

Поэтому табы irc отдельно, табы почты отдельно, табы отдельных проектов отдельно и так далее.

Хотя если открыть пару сотен вкладок в eww будет удобнее переключать окна с помощью ido/helm или кто к чему привык.

zabbal ★★★★★
() автор топика
Ответ на: комментарий от BOSS-NIGGER

Почитал мейлинг лист я недавно…

Почитать и я могу - дело не хитрое. Однако пока контрибьютить не начнёшь - всё будет так, как удобно тем кто пишет код, а не тем кто читает списки рассылки.

Заретски тот еще старый пердун.

Но в итоге в случае с тем же XDG его таки прогнули. Так что разработке это не помеха.

zabbal ★★★★★
() автор топика
Ответ на: комментарий от lucentcode

Вы про игры забыли. Это единственная функция, которой я пользовался в Emacs :)

Для справки: там ещё и неплохой редактор есть. Рекомендую попробовать.

yvv ★★☆
()

Вопрос к знатокам: а чем емакс лучше вима? Там плагины какие-то уникальные или что? Это не наброс, спрашиваю серьезно. Уже несколько человек написали про evil, и непонятно почему бы не использовать нативный вим. На полноценную IDE емакс уж извините так же не тянет.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.