LINUX.ORG.RU

IDEmacs – набор конфигураций для Emacs, делающий его похожим на VSCode

 ,

IDEmacs – набор конфигураций для Emacs, делающий его похожим на VSCode

1

3

Проект IDEmacs, основной задачей которого является подготовка пресетов настроек для emacs, делающих его похожим на популярные IDE, опубликовал первый подготовленный набор → для VSCode.

Набор включает в себя тему оформления, сочетания горячих клавиш, а также всяческие боковые меню и панели, свойственные VSCode.

Чтобы установить на свою машину этот пресет, необходимо:

  1. Установить шрифты DejaVu Sans Mono.
  2. Склонировать репу с конфигами:
    git clone https://codeberg.org/IDEmacs/IDEmacs
    
  3. Запустить emacs, указав ему начальную директорию конфигурации:
    emacs --init-directory=/path/to/IDEmacs/vscode
    

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

★★★★★

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

«реальное преимущество emacs которое было почти уникальным - программируемость без ныряния в код самого интерпретатора(той его части который асмо-сяшный)»

В neovim на Lua программируется любая часть без необходимости нырять куда-либо ещё.

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

мне удобнее просто традиционный редактор на хоткеях.

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

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

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

Хайп лиспа в plex т.е. меньше буккипинга в сравнении с общераспространёными pl начала 60ых;

Emacs/vi не от хорошей индустрии так заплеснили

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

Хоткеи неудобны эргономикой (приходится растягивать пальцы и напрягать кисть, чтобы удерживать модификаторы)

Ну опять таки, кисти у меня никогда не болели, а хоткеи прекрасно укладываются в мышечную память, в отличии от режимов вима, в которых я по факту постоянно путаюсь. И они работают много где, даже тут, в поле ввода фаерфокс работают ctrl+b и т.д. (не все конечно), в поле ввода баша, и т.д. Этот подход имеет свои плюсы, естественно если кисти не болят)

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

Картинка из интернета. У меня, понятное дело

(menu-bar-mode -1)
(toggle-scroll-bar -1)
(tool-bar-mode -1)

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

А вот «уверенный пользователь ПК» вполне может пользоваться emacs’ом в режиме: кликнул по иконке, открыл файл через меню File → Open File, нашёл нужную строчку через Edit → Search → String Forward etc.

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

в поле ввода баша, и т.д. Этот подход имеет свои плюсы, естественно если кисти не болят)

Если что, vim keys тоже поддерживаются практически везде. Например, во всех распространённых shell’ах есть vi-mode, которым я с успехом пользуюсь.

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

Я опять распарсил это сообщение лишь на 30-40%.

Но если очень хочется, neovim можно расширять и кастомизировать на lisp-подобном fennel.

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

Хоткеи неудобны эргономикой

Кому как. Мне удобны.

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

В neovim на Lua программируется любая часть без необходимости нырять куда-либо ещё.

нет. disable Treesitter? disable lsp? Theme? хрен ты сделаешь простую тему.

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

Зачем? Раскладка Emacs - это самая неэргономичная раскладка, до которой додумалось человечество. От неё руки болят, причём без преувеличения.

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

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

Zed? Чем зашел, поделись, пожалуйста.

Зашел тем что все работает сразу, поддерживает довольно много языков через LSP, для языков которые я использую всякий рефакторинг, goto-symbol отлично работает и нет тормозов и лагов. И так же без проблем работает с несколькими LSP в одном файле, я помню в емаксе было web-mode и то оно ломалось на разных сочетания разметки и кода.

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

Одна из крутых фич это возможность сделать поиск и сразу в окне поиска редактировать каждый файл.

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

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

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

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

нет. disable Treesitter? disable lsp? Theme? хрен ты сделаешь простую тему.

Не понял. Для выключения treesitter можно использовать TSBufDisable

Только зачем? Чтобы парсить и раскрашивать регекспами, как в Emacs 15 лет назад? Я прекрасно помню это время, сам написал парочку mode.el для разных форматов файлов. Не забыть, как коряво это работало на мало-мальски сложном формате файла. Достаточно вспомнить, что года до 2011 (дальше Emacs не пользовался) не существовало нормально работающего Emacs mode для Javascript: все они понимали мало-мальски сложный код с ошибками, т.к. регекспами язык программирования полноценно не распарсишь.

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

И зачем всё это возвращать? Зачем мне в каменный век? Я там был, прекрасно помню, насколько ужасно это было.

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

потому, что я правлю ts под некие ЯП и это зло! А стек обновляется сейчас часто, это не Си.
И приходится отключать, ломается всё - тема, отступы и т.д.

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

И так же без проблем работает с несколькими LSP в одном файле

Да - была боль. Сам в web бодался.

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

Согласен, стек поменялся - тратишь время на настройку… И много!

Спасибо за развёрнутый ответ.

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

прст книжка Мартина (того самого шарло_мудреца) We Programmers - оказалась отличным ключом

в индустрии до 80ых царил асм со всеми вытекающими

ну и микропроцессорная революция сделала некоторый ресет ( те же коммунальные вычисления под который создавался Multix тока облаками через ~40 лет )

т.е история сложилась как сложилась - появись(стань массовым как в середине 70ых) Forth на лет 15 раньше как минимум был бы не хуже APL али ваще интерпретирующего_интерактивного_ассемблера BASIC

прикол в том что есть химера plex от зачинателя computer_aided_design - оказалась что plex и lisp с одной стороны и обычные компилируемые на мэйнфреймах языки с другой принципиально отличаются в части динамичности структур данных

крч Emacs это превычный Столману по лаборатории mac редактор а по сути операционная среда по факту виртуализированая лисп-машина

vi/vim вообще ed-переросток визуальный (Карл!)

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

Кто целевая аудитория?

В первую очередь те, кому нужен slime/sly, но не хочется и/или не можется настроить емакс.

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

Нет. А зачем? В FAR это было вызвано необходимостью обходить убогость оболочек command.com/cmd.exe. Например: невозможность пролистать весь вывод команды на stdout, если он не помещается на экран.

Ну и если вам дорог накопленный пользовательский опыт с Far, то воспользуйтесь far2l.

Если же остро хочется именно в mc, то можно что-то вроде:

ls | (tmp=$(mktemp /tmp/XXXXXX);cat > $tmp;mcedit $tmp;rm -f $tmp)

например,

alias mcedit_pipe='(tmp=$(mktemp /tmp/XXXXXX);cat > $tmp;mcedit $tmp;rm -f $tmp)'

ls | mcedit_pipe

Дальше mcedit/mcview тут заменяется вообще на что душе пожелается. Ну дальнейший полёт ограничен только вашей фантазией.

Либо вообще воспользоваться другим консольным редактором. К примеру: micro. Ваш сценарий там вполне работает. С учётом его статической сборки, его и с собой таскать вполне можно. Как минимум, рассмотреть это как вариант решения проблемы.

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

unix-way :)

одно из откровений когда увидел(скан книжки для пользователей доса 2.0+-) «программу в сырцах» в виде батника который

echo e  FF 0D    >t.hex
.
.
.
echo e  ......  >>t.hex
echo n t.com    >>t.hex
echo w 666      >>t.hex
echo q          >>t.hex 
type t.hex | debug
del t.hex
t.com

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

mc в этом смысле более досна чем far - вот какая загагулина консольщиков линуха :)

ps: не помню какой(если вообще) хак в дос для heredoc

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

mc просто из коробки не нужно столько возможностей, которые есть в far просто потому, что консоль изначально была много богаче, нежели в семействе систем от MS, мой посыл к этому был.

Я сейчас временами в KDE Dolphin что-то открываю, но если нужно сделать что-то, то проще жмакнуть F4, откроется встроенный терминал в текущей директории, дальше ввести команду. Да, многое можно сделать через GUI, но пальчики больше помнят, что ввести. Да и по другим машинам по UART/SSH лазить приходится: а пользовательский опыт плюс/минус тот же используется.

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

Кто тебе на удаленном хостинге иксы поставит@запустит.
Все решения требующие специальной подготовки двух машин неуниверсальны. Только псевдогуй, git remote или какое нибудь web-решение и спасает.

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

Кто тебе на удаленном хостинге иксы поставит@запустит.

Кто меня заставил (извращенец) на удалённом хостинге код править, тот пусть и ставит. Очевидно же.

P.S. А аналога tramp-mode в vscode разве нету?

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

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

мыcode вполне заурядный редактор для погроммистов

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

Тогда откуда вообще взялась странная идея запускать среду разработки удалённо? Что-то я запутался.

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

выше по топику человек утвердил что мыcode не может подключится

вот и пошло писать губерния

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

Книгу можно скачать в двух местах:

  • Boosty

  • Telegram-канал «GNU Emacs для технических писателей».

Лаг версий между Boosty и Telegram - 6 месяцев, зато не надо платить.

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

Можешь расписать, чего такого в vscode чудесного, чего нет в kate или geany, например?

Нормальная поддержка LSP, вагон плагинов и поддержка удалённой разработки. У меня половина команды сидят с дешёвыми копропротивными ноутами и разрабатывают по SSH.

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

VSCode remote и вот этому то как раз в Emacs есть аналог в виде TRAMP, который даже больше целей поддерживает, в том числе и работу внутри Docker контейнеров и ему сто лет в обед уже.

VSCode Remote – это не аналог TRAMP, это аналог emacs client + emacs daemon. В случае TRAMP емакс у тебя остаётся локальным и просто скачивает содержимое файлов по ssh, а потом записывает обратно. VSCode Remote запускает копию (бэкенд) собственно VSCode удалённо, на твоём компе же остаётся только гуй.

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

Кто меня заставил (извращенец) на удалённом хостинге код править, тот пусть и ставит.

тут и танцует emacs-nox + 1 файл конфига (ansible/puppet etc).
хотя наши крокодилы поголовно в vim, при правильном конфиге приятнее жить с модами под ЯП и lisp wrapper for vim (evil-mode)

Eulenspiegel
()

Спорная сборка.

  • С одной стороны, хороший старт для новиопов новичков, а с другой – пакеты из MELPA. Нестабильно.

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

  • Вместо setopt используется setq. Не говорю, что это прям ужос-ужос, но по-хорошему стоило бы добавить полифилл.

Отмечу важный плюс этой сборки: она использует некоторые настройки, про которые я даже не знал. Утащил себе.

Рекомендую внимательно изучить код, там много всего интересного.

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

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

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

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

Согласен, так правильно. TRAMP даже универсальнее, работает с устройствами, на которых сервер VSCode не запустится, но есть SSH или даже не по SSH, буквы MP в названии это Multiple Protocols.

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

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

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

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

У Яндекса вон слили десятки гигов исходников, и что? Видим мы сотни новых Яндексов по свету? Кроме, не*биуса, ради которого этот слив, похоже, и делался.

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

Проблема в том, что TRAMP тормозное дерьмо и не может запускать нормально штуки типа LSP на целевой системе. Т.е. файлик по ssh поправить пойдёт, но не более.

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

Принято, бывает такое. Однако если тут такая серьёзная организация, то и на вопрос: «а кто поставит то и это» есть простой ответ: «тот, кому это полагается сделать согласно штатному расписанию и должностной инструкции».

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

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

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

lol, vi/vim - вот они дирижеры!

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

Для кода - победа. Так как это вим с модами под ЯП. И работа с ним полностью повторяет vim - ssh host, cd … or find … grep … ee (alias emacs or vim) file, edit, compile if needed, restart service.

https://pastebin.com/71AVrkeL
https://ibb.co/x8qZQSKF

Eulenspiegel
()
Последнее исправление: Eulenspiegel (всего исправлений: 2)

Для удаленного дебага насколько знаю, нужно не tramp использовать, а dap-mode, сам еще не попробовал, руки не доходят с pycharm слезть, но вроде там все не так сложно.

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

Это лишний геморрой, да ещё и работает медленнее, особенно на плохих каналах. Минусы есть, плюсов нет. Ну и зачем?

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

да ещё и работает медленнее, особенно на плохих каналах

Нет ))

крутые используют Vis + sam, для комфорта - emacs-nox.
а localhost trump или ещё что ))

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

Здесь не о чем спорить. Если канал — бутылочное горлышко, то чем меньше его утилизируешь, тем быстрее система едет.

крутые используют Vis + sam, для комфорта - emacs-nox.

Вы ошиблись дверью. БДСМ клуб на другом этаже.

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

Ну вот удаленный хост на эльбрусе, иксы может там и есть но откуда там vscode? А на роутере? А на вдске?
Спартанские условия гораздо проще себе представить чем барские.

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

Тарасе, ты пиши уже украинской что ли, так хотя бы перевести можно.

uin ★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.