LINUX.ORG.RU

А как вы используете emacs?

 ,


3

4

К этому вот
На сегодня emacs использовать с нуля как текстовый редактор не самое лучшее занятие - слишком высока кривая обучения и настройки, а список режимов, где emacs конкурентноспособен не так уж высок. Лучше VS Code, благо у MS он получился очень и очень.
Лично я использую emacs как усилитель Unix Way: из коробки lisp c IDE, eshell, который объеденяет s-выражения с системным shell-ом, куча удобных фич как из коробки, так и из репозитория. Все это вполне годно к разработке всяких прототипов, генерации и анализа данных и т.п. Раньше для этих целей я использовал python и интегрированный в emacs ipython.
А как используют emacs ЛОР-овцы?

★★★★

Последнее исправление: cab (всего исправлений: 3)
Ответ на: комментарий от feofan

связка с джетбрейнсовской идеей

А вот тут подробнее, сходу не нагуглилось.

meghanada-mode

Проигрывает VS Code по таким параметрам:
дебага нет.
Нет java doc tip. Когда стоишь на методе, а тебе показывает документацию.
нет превью использований. Єто когда стоишь на методе, а тебе показывает случаи его использования в разных классах.

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

пробовал использовать ctags в связке с erlang

Для java и python - это gnu global, для elisp искоробочный etags

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

Языкоспецифичные решения обычно работают лучше

Когда как. В динамических языках бывает, что сущности записываются в строках, например имя класса объект которого нужно получить динамически и т.п. Тут теги справляются, именно потому что они тупые и им пофиг, что тег внутри строки.

no-such-file ★★★★★
()
Ответ на: комментарий от cab

Нет java doc tip. Когда стоишь на методе, а тебе показывает документацию

Меня это doc tip всегда раздражает. Только мешается, пользы ноль. Лучше просто перейти к определению и посмотреть, что к чему.

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

Можно в helm смотреть список использования тега helm-gtags-find-symbol или просто helm-git-grep (как вариант helm-do-ag-project-root). Да, не так интеллектуально, зато надёжно и нет проблем с объектами которые получаются динамически из фабрики (т.е. известны только в рантайме).

дебага нет

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

В общем, это просто другой подход к программированию. Наверное у меня уже emacs головного мозга но в «больших» IDE меня через час работы начинают раздражать их потуги «умно» дополнять, «умно» показывать перекрёстные ссылки и т.п. умничание. Для меня подобная «умность» это больше ограничение, чем облегчение в работе.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от cab

то для android только студия :(. Аналогично для iOS уродский XCode

Тут соглашусь. Точно также для Qt только QtCreator. Но это специфические случаи, когда IDE по сути является частью платформы.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от no-such-file

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

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

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

feofan ★★★★★
()
Ответ на: комментарий от no-such-file

Дебаг при написании программы не нужен, достаточно тестов, логов и головы.

Log4J прекрасен, соглашусь.

Дебаг полезен только при исследовании программы от которой нет исходников, или их нельзя менять (не хватает чего-то для сборки).

Когда тебе прилетает ХЗ что, то лучше посмотреть дебагером. Не будешь же на каждый объект в примитивы разворачивать да логи потом анализировать, особенно, когда они в контейнерах. В мобайле такое сплошь и рядом. У меня 80% как раз логи, а 20 таки дебагер.

Меня это doc tip всегда раздражает

так смотри по хоткею или чтоб в отдельном буфере показало доку.

cab ★★★★
() автор топика
Последнее исправление: cab (всего исправлений: 1)
Ответ на: комментарий от loz

Макросней, например объективно хуже

Я бы поспорил. Запилить свой синтаксис через плагин к babel это конечно сложнее чем макросы в CL, но далеко не рокет саенс. По сложности на уровне схемы/ракетки.

no-such-file ★★★★★
()
Ответ на: комментарий от loz

Еще могу CLOS назвать, но в елиспе ее нету вроде.

Есть eieio, по мотивам CLOS, часть стандартной поставки.

cab ★★★★
() автор топика
Последнее исправление: cab (всего исправлений: 1)
Ответ на: комментарий от loz

Спору нет, тоже бы его всем рекомендовал, но привык, в том числе потому что приходится работать с git на удалённых машинах, где нет emacs.

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

Тоже приходится, магит с трампом отлично сочетается. Немного медленнее чем на локалхосте, но не критично.

loz ★★★★★
()

Привет! Когда использую, использую как и joe editor: ищу выход из него!

anonymous
()

Имакс как С++, только того закопать не получится, а имакс вполне можно.

Virtuos86 ★★★★★
()

Лучше VS Code

Пробовал. Замаешься делать его как Emacs.

rupert ★★★★★
()

использую Emacs как запускалку org-mode M-x org-babel-tangle C-c С-С блоков кода в недоREPL, C-c e WEAVE экспорт в PDF/ODT/HTML и т.п.

anonymous
()

А как вы используете emacs?

Как источник щюток и йумора на ЛОРе. Больше у него применений нет.

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

А на смолтолке что-то пишешь или так? Всегда хотел на него посмотреть но нет времени.

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

Ну и еффект от emacs есть, когда ты знаешь лишпик и надо написать какое-то свое расширение.

в 90% случаев его писать не надо c нуля: кто-то уже запилил нечто подобное, вот и нужно нагуглить, и допилить по аналогии.

вот и получается «заселяем киберпространство», «вино и бутылки», сиречь — дистрибутивы vs. маленькое компактное «всё-в-одном». тот же latex vs. lout, например.

потом, ты смотрел эти расширения? по функциональности как правило неожиданностей особых нет: 1) синтаксическая раскраска 2) вставка сниппетов 3) идентация и навигация по исходнику.

это небольшое количество функций можно и наизусть выучить.

До недавнего времени мало какой инструмент позволял просто и естественно это сделать.

THE и REXX :P но он консольный :)

вообще, чего хотелось бы от идеального текстового редактора (лично мне)?

  • расширения на нормальном, гибком языке
  • синтаксическая раскраска
  • гибкая модель составных документов
  • асинхронность и выхлоп процесса в буфер
  • docking windows, splitters
  • кроссплатформность везде

docking windows и splitters выглядят как нормальное современное IDE.

в общем, чего-то типа Crimson Editor.

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

модель документов — IMHO, то, что ограничивает текстовые редакторы до нормальных IDE больше всего потому что это, сюрприз, текстовые редакторы.

то есть, всё что больше текста — показывается с трудом. в емаксе вот есть картинки и faces для синтаксической раскраски. а ничего больше-то и нет.

в TeXmacs на Qt/Guile кстати, более расширяемая модель документов. дерево. и плагины там можно было бы написать более вменяемые (типа того же skribilo).

вообще, хочется составных документов, чтобы можно было создавать свои виджеты, и чтобы контейнер тоже был виджетом, составным. и далее — комбинировать.

чего-то типа .odc составных документов в BlackBox Component Builder, Blackbox Component Framework. чего-то вроде DOC из ворда, только не OLE а ближе к OpenDoc и SOM из полуоси.

и далее их описывать S-выражениями. например, вот тот же org-mode.

у него «блоки кода» могут иметь переменные. метапеременные времени выполнения елиспа из орг-мода. через них можно стыковать отдельные «блоки кода» и «блоки данных». можно БД навертеть на S-выражениях, типа EIOIO или edb.

и устроить себе персональную Enterprise Service Bus на елиспе :)

но, не хватает возможностей расширения. хочется чего-то типа reactor или MVC из смоллтока.

например, в смоллтоке Pharo/Squeak виджеты Morphic образуют настоящий такой livecoding этих самых объектов-компонентов, без дураков.

а в емаксе еслип-объекты на S-выражениях — «с дураками».

потому что нужны:

1. нормальный лисп

2. нормальная, расширяемая модель составных документов

3. нормальный GUI

то есть, нечто типа того же BlackBox Component Pascal *.odc с виджетами-вьюшками на компонентном паскале, модулями.

или чего-то вроде Crimson Editor с docking windows, splitters, но чтобы можно было открывать не только тексты а те же PDF или HTML, или «свой GUI»

или смоллтока с Morphic и MVC с реактором.

или на том же RED нечто подобное запилить велосипед :)

и емакс поверх него :))

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

Вот на java не так уж и много хороших расширений. Даже в JetBrains запилили свой Kotlin, чтоб на java не писать.

а бимеры запилили свой NetRexx, лишь бы на жабе не писать :)

вдобавок к ooRexx со смоллтоковой моделью и метаклассам.

я, конечно, понимаю что жабоскрипт, хиспторы и всё такое.

однако же: может ли что-нибудь быть более просто и наглядно расширяемо чем этот пример с Rexx и BSF?

ooREXX, в NetRexx практически всё тоже самое. только компилируемое. 2005 год, Карл!

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

в общем, надо запилить в Pharo вдобавок к Morphic елисп (или допилить эту схему) и елисповый API, и написать себе такой емакс на смоллтоке. лишь бы org-mode работал. за образец взять skribilo на guile, с настраиваемыми AST reader/AST writer.

с вистом и профурсетками! :))

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

лучше бы elisp выкинули. а picolisp добавили

Может и лучше бы. Но что есть, то есть.

cab ★★★★
() автор топика

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

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