LINUX.ORG.RU

Если вы пробовали вкатиться в GNU Emacs, расскажите, что пошло не так

 


3

5

Всем привет!

Часто вижу на форумах мнение, что Emacs это что-то старое, кривое и ненужное. Пожалуйста, напишите в комментариях, как вы пытались вкатиться в Emacs, и что пошло не так. Это поможет мне улучшить свою книгу про Emacs и даст идеи для постов в Telegram-канал.

Ответ на: комментарий от James_Holden

На вопрос «что ближе: Луна или Солнце» заплакал, заорал матом, полез в драку, — в общем, ответил уклончиво. Почему-то такая реакция всегда возникает, когда другие приходят помериться с emacs’ом расширениями.

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

Разве можно забыть три с половиной комбинации хоткеев и возение мышью?

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

А почему работать не так?

Потому что не окажется Имакса, и привет.

Почему ты с Kate весь такой дартаньян в белом

Потому что это стандартный редактор, такой же как сотни других, а не вещь в себе. Для работы в нем, не надо знать вообще ничего кроме notepad.exe.

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

есть система плагинов, значит добавление максимально облегчено

У одних «можно сделать», у других «давно сделано и работает». Теоретически разница непринципиальная. Теоретически.

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

Ты где-то видел, что кто-то хотел меряться расширениями? Ты очередной повернутый? Где именно?

Я писал, что благодаря наличию системы плагинов, я могу написать плагин и впилить то что мне надо. Я не говорю что все есть уже готовое. Ты это сам додумал и сам начал какой-то идиотский спор. Но как всегда, тут никто не понимает смысл текста, это просто катастрофа уже какая-то.

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

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

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

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

Теоретически мы с тобой, сынок, миллионеры …

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

А это комментировать — только портить.

Заметьте, я отнюдь не пытаюсь вас как-то унизить или запретить пользоваться Kate или другим блокнотом-переростком. Это глупо, да и невозможно. Но объективно, некоторые вещи проявляются только на большом масштабе. Если в вашем редакторе когда-нибудь появятся тысячи функций, а он при этом сможет сохранить наглядность и простоту — это будет дело, это будет достижение. А пока он ничего не умеет, то и невелика заслуга быть простеньким для освоения.

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

Можно воспользоваться этим для получения доступа к текущему окну из внешних хоткеев: https://pkg.go.dev/9fans.net/acme-lsp/cmd/acmefocused

История успеха: https://9lab.org/9port/acme-with-lsp/

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

редактор умеет редактировать. ему не нужны «тысячи расширений», внезапно. потому что принцип KISS. софт должен решать одну задачу и решать её хорошо. что, как правило, и представлено в большинстве опенсорца.

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

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

Ну бывает хочу вызвать функцию, которой в этих редакторах нет. Потом вспоминаю, что это не емакс, и страдаю, правя руками. Но я умею быстро переключаться.

Потому что это стандартный редактор

До какой степени стандартный? Что такое вообще «стандартный редактор»? Который умеет ctrl-[cxv] и выделение по шифту? Что ещё общего между Kate, и например VSCode?

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

Всё это замечательно. Только emacs это не редактор. Это среда в которой работают разные программы, включая и текстовый редактор тоже.

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

Ну бывает хочу вызвать функцию, которой в этих редакторах нет. Потом вспоминаю, что это не емакс, и страдаю, правя руками. Но я умею быстро переключаться.

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

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

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

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

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 2)
Ответ на: комментарий от ugoday

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

Ему ничего не надо уметь. Это текстовый редактор. Он позволяет редактировать текст.

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

Для работы в нем, не надо знать вообще ничего кроме notepad.exe.

Чтобы использовать Kate как notepad.exe? Зачем тогда тебе Kate?

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

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

Потом вспоминаю, что это не емакс, и страдаю, правя руками

А мне надоело так страдать.

Который умеет ctrl-[cxv] и выделение по шифту?

Базово - да.

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

зачем всё пихать в одно приложение

Есть такое слово - интеграция

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

Ему ничего не надо уметь.

XVII. Лисица и Виноград


Голодная кума Лиса залезла в сад;
‎В нем винограду кисти рделись.
У кумушки глаза и зубы разгорелись;
А кисти сочные, как яхонты горят;
‎Лишь то беда, висят они высоко:
‎Отколь и как она к ним ни зайдет,
‎Хоть видит око,
‎Да зуб неймет.
‎Пробившись попусту час целой,
Пошла и говорит с досадою: «Ну, что́ ж!
‎На взгляд-то он хорош,
‎Да зелен — ягодки нет зрелой:
‎Тотчас оскомину набьешь».
ugoday ★★★★★
()
Ответ на: комментарий от Puzan

Чтобы использовать Kate как notepad.exe? Зачем тогда тебе Kate?

Чтобы начать работать и интуитивно разобраться в остальном. А остальное, чего нет в notepad.exe, это подсветка, она просто работает и ее не надо изучать, дерево файлов которое самоочевидно, и функции LSP которые доступны через меню, но это уже не чистый Kate, а плагин LSP их добавляет.

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

мне стало интересно, что же это за функции такие

Их там 6469, про какую рассказать? :)

что такое прямо необходимое всем

Необходимое мне, я всем не навязываю.

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

Я подозреваю, что ты печатаешь текст на печатной машинке, ведь только там нет никаких функций, кроме печати.

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

множество отдельных утилит для разных задач. мне не нужно всё это загружать и выполнять разом

Внезапно: в emacs то же самое.

зачем всё пихать в одно приложение

Ну, вас же не смущает, что все процессы запущены под одним ядром, все графические программы — под одним X-сервером, а jar-файлы используют одну и ту же java-машину. Тут то же самое. Чтобы программы могли интегрироваться друг с другом, они должны быть запущены в одной среде. У этого есть свои преимущества. Совет не универсальный, но вот здесь работает так и это работает.

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

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

зачем всё пихать в одно приложение - я решительно не понимаю.

У меня есть такой пример (источник):

Susan has fetched the file frob.tar.Z. She clicks with B1 in the file
name, and with B2 in the word untarz. The utility untarz uncompresses
and untars the file, verbosely printing file names as it goes. She
clicks with B3 on one of the file names, INSTALL, which opens the
file. The INSTALL file suggests that she run configure then make. She
clicks B2 in each of these words to run the suggested programs, but
there's a problem. The make fails when gcc quits with the error
message keyboard.c:4: strings.h: No such file or directory. She clicks
with B3 in the first part of the error message, which opens the file
and selects the line. On Susan's system there is a string.h but no
strings.h. She removes the last s with a B1-B2 chord. When she
modifies the file, Wily sets the ``file modified'' indicator, and adds
the word ``Save'' to the tag for this window. Susan clicks B2 on the
word Save to write the file, clicks B2 on make again, and she's done.

This whole process uses about ten mouse clicks and no typing.

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

Взять, например, традиционное представление шелла: исполняется только последняя линия, предыдущие линии невозможно изменить или использовать в свою пользу (например, исполнить предыдущую команду ещё раз, убрать весь текст кроме введённых команд). Почему? Чем принципиально работа с шеллом не должна быть работой с текстом? Причины нет.

Текстовый редактор позволяет удобно организовать работу с текстом. Это глобальное преимущество будет распространяться на любую проблему, которую можно представить в текстовом виде, в том числе работу с почтой. Можно условно открыть файл, выделить текст, отформатировать его на месте через /bin/fmt, ввести где-нибудь команду >sendto admin@example.com и вуаля, срез текста стал сообщением.

KISS и множество отдельных утилит для разных задач

Подобный стиль работы можно реализовать даже в vi. Если интересно, могу поделиться историей успеха.

kaldeon
()
Последнее исправление: kaldeon (всего исправлений: 2)
Ответ на: комментарий от tiinn

Действительно, им надо убрать легаси. Тогда они, однозначно, обретут еще одного своего адепта и будут безмерно счастливы :)

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

Через использование совместно доступных функций и внутренних переменных, механизм hook’ов, file-local и directory-local переменных, например.

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

О, так тут оказывается, развернулась борьба против emacs. Поводом к вероломному нападению явилось обнаруженное erc в недрах emacs :)))

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

Можно условно открыть файл, выделить текст,

notepad.exe

отформатировать его на месте

Ну хорошо. WordPad.exe

ввести где-нибудь команду >sendto admin@example.com и вуаля, срез текста стал сообщением.

Нафейхоа?? ctrl-c ctrl-v enter в почтовом клиенте. Вообще любом.

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

Я уже и забыл, что можно. Тогда другой пример: делаем git push, команда сообщает нам, что сперва нужно исполнить git push --set-upstream origin foobar. Эту команду в традиционном шелле невозможно исполнить на месте, тогда как в текстовом редакторе это просто текст, можно поменять foobar на quxquux, выделить и исполнить — всё используя простейшие примитивы редактирования текста.

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

Что за набор умных слов. Давай конкретные примеры. Что делать.

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

Странно. На непривычные интерфейсы как благородное животное на новые ворота смотрите вы, а синдром утёнка у меня. Пойду поговорю об этом со своим психотерапевтом. В emacs ясное дело.

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

Так emacs же - один из столпов опенсорса. Редактору уже… не менее 35 лет, а он еще на ногах стоит. Сколько vscode продюжит в итоге (пока Большие Корпорации деньги не перестанут в этот проект вливать?). Ради этого, можно снисхождение сделать emacs-у

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

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

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

Нафейхоа?? ctrl-c ctrl-v enter в почтовом клиенте. Вообще любом.

Почтовый клиент, запросы SQL, HTTP-запросы, gRPC-запросы, клиент для докера… А можно делать всё в одном месте.

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

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

таких вещей в опенсорце немало. но я отметила это как плюс, конечно.

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

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

но зачем это всё грузить в память, если ты всё равно всем сразу не пользуешься? это нерационально и непонятно.

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

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

Всмысле непривычные, еще раз повторить - я его достаточно долго использовал. Если с первого раза не понятно, то психотерапевт тут может помочь, да.

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

Вопрос реализации. Насколько я понимаю, плагин для работы с почтой действительно живёт в емаксе. А в Acme это сторонняя программа, которая общается с текстовым редактором через API.

[всё грузить в память] нерационально и непонятно.

Возможно. Но это похоже на компромисс. Я думаю, что от этого решения есть определённые плюшки. Например, API Acme имеет свои ограничения. А в емаксе можно быть более динамичным/свободным и одновременно не иметь никаких сложных API, потому что всё в одном месте.

(реального опыта работы с емаксом не имею)

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

Я уже и забыл, что можно. Тогда другой пример: делаем git push, команда сообщает нам, что сперва нужно исполнить git push –set-upstream origin foobar. Эту команду в традиционном шелле невозможно исполнить на месте, тогда как в текстовом редакторе это просто текст, можно поменять foobar на quxquux, выделить и исполнить — всё используя простейшие примитивы редактирования текста.

Ну понятно. Это же просто ЛОЛ

Вы сидите в Emacs и понятия не имеете, что в двугих приложениях можно, а что нельзя.

Берем Konsole - это просто эмулятор терминала. Не текстовый редактор. Нажимаем ctrl-shift-d, курсор начинает свободно перемещаться по экрану. Для этого можно использовать как классические клавиши, так и Vim клавиши. Выделить любой нужный текст можно несколькими вариантами хоткеев, в зависимости от того что надо выделить. Потом вставляем выделенное хоткеем и нажимаем Enter.

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

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

А можно делать всё в одном месте

Можно и зайца научить курить. Вопрос - зачем.

А для большинства случаев общий глобальный интерфейс делает разные задачи более однородными.

Для этого изобрели DE, где наборы однородных программ.

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

реального опыта работы с емаксом не имею

Еще один, не читал но одобряю, буду спорить с теми кто читал. Как же это интересно выходит в этом треде. То два вимера со мной спорили, то ты.

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

А я достаточно времени работал в Emacs, чтобы судить о нем.

Что за набор умных слов.

Для человека, который «достаточно времени работал в Emacs» вы проявляете поразительную неосведомлённость.

Что делать.

Да что хотите. Ни я, ни emacs вас ни в чём не ограничивают.

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

есть ещё один плюс подхода KISS: софт легко обновлять

Я согласен с вами. Программы emacs’а легко обновляются штатным пакетным менеджером.

ugoday ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)