LINUX.ORG.RU

Диалоги о (X)Emacs


0

0

В форумах неоднократно уже обсуждали (X)Emacs во всяких флеймах. Предлагаю,
наконец-таки нормально и цивилизованно пообщаться на эту тему. Всем ненавистникам
(X)Emacs: пожалуйста, просто не читайте дальше, закройте это сообщение и не
надо начинать флеймить.

Я далеко не спец по Emacs, просто человек, которому эта среда очень нравится
и который хочет ее максимально использовать. Так что извините, если кому вопросы
покажутся глупыми. Для затравки хочу задать несколько вопросов:

1) Как цивилизованно забиндить глобально комбинацию (control button1) на
popup меню всех буфферов. Я кое-как смог это сделать на поле конкретного режима
(cc-mode), а мне хочется везде.

2) Что можно выкинуть из пакета xemacs-mule, так, чтобы остался только русский
язык? Ну не дело, что для поддержки русского языка приходится ставить лишние
80 мег. Или может вообще можно обойтись без него (только сильно не нарушая
идеологии xemacs)?

3) Можно ли тулбар настраивать ручками через конфиг .emacs, а не через кривой
редактор тулбаров и хрен знает еще какую кучу файлов типа .xemacs/.toolbar/*?
Если да - то как?

4) Как установить pixmap в фон, но только на "рабочую поверхность", то есть
буфферы и минибуффер? А то если я ставлю его глобально - то он затрагивает и
моделайн, и диалоги - а их всех explicitly отключать - замучаешься. И наоборот -
если устанавливать каждому фейсу фон - тогда его "недостает" в буфферах.

5) Как идеологически правильнее - переопределять цвета и pixmap'ы через .emacs
или ресурсы X-ов, типа того же .Xdefaults? И что быстрее работает?

6) Есть где-нибудь хорошая локализация XEmacs на русском языке? Если нет - может
сделаем?

7) Существует ли что-нибудь типа PHP-embedded HTML mode? Если да - то где и как?

8) Наличие альтернативных CVS-интерфейсов к (X)Emacs, кроме PCL CVS. А то это,
конечно, здорово, но имеет 2 существенных недостатка: очень неудобно и страшно
тормозит. Я сейчас пользуюсь внешней прогой - cervisia, но хотелось бы все-таки
что-нибудь "без отрыва от производства"...

9) Что-нибудь типа функции запуска программы. То есть примерно такой план:
делается сборка, каким-то образом (из мейкфайла?) вычленяется имя созданного
бинарника, потом запускается консоль и в этой консоли запускается моя программа.
Реально? Кто-нибудь уже писал такую штучку?

Вроде пока все... Как будут еще появляться вопросы - буду еще писать :)
Жду ответов, кто чего знает - пишите...

★★

Я пользую GNU Emacs и не гарантирую что это будет работать в XEmacs.
2) Сам MULE весит около мега и удалять его не советую. Рекомендую поковырять quail, пошариться в ispell и удалить лишние словари (немецкий, эсперанто и т.п.)
5) Глобальные цвета лучше установить через .Xdefaults (т.к. они влияют на весь фрейм, а не только на рабочую область), и продублировать в .emacs (это будет удобно при переносе конфига под винду).
7) Еcть PHP-mode и HTML-mode. И есть такая утилитка - multiple major modes, позволяющая держать несколько главных режимов в одном буфере. Смотри mmm.el на http://www.geocities.com/SiliconValley/Bridge/7750/xemacs/
8) Посмотри cvs.el на http://www.teaser.fr/~flepied/
9) Ищи по regexp имя файла и запускай его субпроцессом через rsh.

Viking
()

Кстати, если у тебя мышь со скроллером, в емаксе можно прикрутить прокрутку буфера на колесико.
Например:
(global-set-key [(mouse-4)] 'scroll-down)
(global-set-key [(mouse-5)] 'scroll-up)
позволит скроллировать постранично.
Естественно, в XF86Config должно быть что-то вроде:
Section "Pointer"
Protocol "IMPS/2"
Device "/dev/mouse"
Buttons 5
ZAxisMapping 4 5
Рекомендую - очень удобно (особенно в GNU Emacs с его корявыми scrollbars).

Viking
()

2) Наивный человек - дело-то в том, что это MULE в обычном Emacs
мег весит. В XEmacs оно 40 мег плюс еще обязательна установка исходников
лисповских (еще 40 мег). Итого лишних 80 мег. Китайцам они, конечно,
нужны - в этих 80 мегах - всякие китайские non-simplified иероглифы,
варианты для strokes рисования этих иероглифов мышкой и т.п. Но нам-то -
на фиг :)
5) Под винду пересаживаться не собираюсь, хотя... Проблема-то в том,
как поставить pixmap аккуратно только в области буффера, не задевая
моделайн, диалоги и т.п. Я делаю так:

Emacs.default.attributeBackgroundPixmap:/path/to/pixmap

Что не так?

7) Да мне хватит просто чтобы HTML включался по дефолту на расширения
php и php3... Где это ставится?
8) Посмотрел только очень поверхностно, но общее впечатление такое -
ну не сделан XEmacs для того, чтобы работать в сети :( Все равно, любой
шаг по доступу к CVS вешает емакс вплоть до неперерисовки экрана, пока
не будет получен ответ с CVS...
9) Э... Я как бы не спец в лиспе... Я только учусь :) Вот и хотел
как раз посмотреть, как такую вещь можно сделать...

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

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

Кто-нить скажите где можно взять какие-нить альтернативные С++ режимы
для emacs, а то родной cc-mode уж больно бедно синтаксис светит :(

Николай Либер (FireWind)

anonymous
()

Родной cc-mode очень даже неплохо синтаксис светит :) Чего тебе конкретно не нравится уж так? Альтернативные режимы - есть старый c-mode (или как он там теперь называется) - но у него несколько беднее возможности по поводу indent... Видил еще (не у себя) какие-то Java-ориентированные моды, они к Це тоже подойдут вполне... Их можно... Поискать надо в ftp://ftp.xemacs.org/pub/contrib/ или как там его...

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

2 FireWind: если ты под GNU Emacs, попробуй вписать (setq font-lock-maximum-decoration t). У меня из сорцов делает злобный фруктовый салат.
2 GreyCat:
2) Так и прибей китайский.
5) Ну не знаю я, нет у меня пиксмапов :) Могу только посоветовать ставить пиксмапу в .emacs, т.к. там цвета и т.п. на менюхи не действуют.
7) (set-default 'auto-mode-alist
(append '(("\\.html$" . php-mode)
("\\.htm$" . php-mode)
("\\.shtml$" . php-mode))
auto-mode-alist))
8) Поройся в настройках, может там есть asynchronous mode, как в Gnus или W3.
9) Я в elisp тоже не спец. Для поиска можешь пользоваться (search-forward-regexp <expression>), возвращает позицию первого символа совпадающего выражения в текущем буффере. Для исполнения тебе понадобится создавать субпроцесс - посмотри где-нибудь в сорцах (telnet.el например). Мне это как-то не надо было, я готовым тулом пользуюсь.

Viking
()

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

FireWind

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

У меня такое впечатление создается все больше и больше, что львиная доля нужных настроек в XEmacs делается в compile-time и потом ты их хрен поменяешь :( Русский язык, например, поддерживается только для iso8859-5 шрифтов, а koi8-r делается путем перекодировки с этих шрифов. Ну как его, спрашивается, заставить юзать koi8-r шрифты, а его iso8859-5, если ему уж так нравится делать через перекодировку. Ну не прет меня абсолютно иметь лишние полмега памяти забитыми этими iso-шными шрифтами... А насчет Elisp'а, когда я писал, что не спец - это значит, что я в нем вообще практически ничего сделать не смогу. Когда-то давно я на лиспе писал для автокада и Cakewalk'а. На elisp вообще ничего сам никогда не писал и хочу узнать - нет ли где такой штучки, как я хочу. А ты упомянул что-то готовое, чем ты пользуешься? Кто вообще как программы запускает? Компилить в (X)Emacs, в терминалку - и оттуда?

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

Дык (X)Emacs же сессии запоминает, файлы .saves-* никогда не видел... Вот их и того... restore-session или как там ее...

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

> А ты упомянул что-то готовое, чем ты пользуешься?
Я пишу на в основном на CL, поэтому у меня специфика несколько иная. Есть такая тулза - ILISP (ilisp.cons.org), эмулирующая IDE Лисп-машин. Она запускает среду субпроцессом в интерактивном режиме и с нею разговаривает. В общем случае, при изменении кода в файле нет необходимости перекомпилять весь файл, достаточно перекомпилить те функции/методы/классы которые были модифицированы - для этого даже приложение останавливать не требуется.
Но я уверен, что для C какая-то среда тоже есть, если хорошо поискать. Для Явы ведь есть JDE под Emacs...

Viking
()

А вообще, хорошая идея спросить на comp.emacs (или comp.emacs.xemacs). Или порыться в архивах .emacs (напр. на http://www.ikoch.de/), и посмотреть как сишники это делают.

Viking
()

Рррр... Я вчера сюда такую мессагу написал... О том, что я себе поставил XEmacs из тарболлов и теперь радуюсь жизни. Так что кому интересно - спрашивайте... Пока я еще помню... Может страничку сделать про это? И прямо сюда на linux.org.ru запостить? :) А насчет такой внешней IDE - честно говоря, чего-то не хочется... Я уже понатерпелся с этим рантаймовым комплированием и заменой объектов проги в MSVC, больше не хочется... От них сплошные глюки, да и на организацию программы они накладывают определенные ограничения, которые я себе вообще слабо представляю в Qt, например... За ссылочку спасибо :) Еще один вопрос, пока не забыл - осталось мне только поменять логотип XEmacs на splash screen? Как это сделать? Он что, вкомплируется внутрь бинарника, что-ли? Подменяю XPM на локальном диске - нуль внимания... Откуда-то все равно берет старую картинку...

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

> А насчет такой внешней IDE - честно говоря, чего-то не хочется...
Что значит внешняя? 100% на elisp. А динамическая компиляция только в C такая горбатая, потому что пришита была сбоку, как и объектная система. В Лиспе это было с рождения заложено.

Viking
()

Я кстати XEmacs тоже из тарболла ставил :) Главное - разобраться что ты хочешь скормить конфигуре, а остальное в принципе несложно.
Но переходить на него не стал: единственная по настоящему необходимая вещь которая есть там и отсутствует в GNU Emacs - console colors.
Так что буду ждать Emacs 21.

Viking
()

Ну, не скажи... XEmacs много чем меня радует, особенно после приличной настройки. Например, нормальным распознаванием всех модификаторов и их комбинаций, без кривового синтакисиса типа C-S-double-mouse1... Всех клавиш, что прописаны в иксах. Куда более полный MULE (особенно, если настроить его - у меня на это дело куча времени ушло...) Тулбары, как ни крути, очень приятная вещь (не дефолтовые, конечно - те, уродство, но я вот приспособил тулбары под всякие хорошие, удобные и нетривиальные вещи - теперь просто блеск...) А console colors - мне лично вообще не нужны... Я если сажусь за девелопмент, то конкретно и надолго и лишних 5 секунд подождать по поводу загрузки иксов и XEmacs в них мне не лень... Так что на самом деле сильно рекомендую именно XEmacs...

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

Да, кстати, вдогонку... Я посмотрел, чем "крутые сишники" пользуются в качестве такого IDE... JDE они пользуются... Он C тоже как-то держит... Может и мне попробовать...

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

Не знает ли кто как в XEmacs прицепить включение asm-mode на файлы с .asm ? У меня стандартным заданием auto-mode-alist не получилось. Ее значение не хочет меняться. Раскопки показали, что она в C-шном тексте зашита.

avv
()

У меня такое впечатление, что там может быть много чего зашито... Блин... Как же так... Кажется, там и pixmap на splash screen'е тоже зашит в бинарник, я его меняю уже как только могу - ему пофигу... Или не зашит? Кто-нибудь с этим сталкивался? Мне по сути дела всего одну вещь осталось для полного счастья установить :)

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

Легко. Splash вызывается startup-splash-frame() из startup.el. Там выводится содержимое переменной xemacs-logo (built-in, но можно переопределить). В переменной ссылка на файл etc/xemacs.xpm ->картинка. Текст задается чуть ниже в переменной startup-splash-frame-<кажется text?>.

avv
()
11 сентября 2002 г.

Не может всеуважаемый ALL посоветовать, как заставить-таки XEmacs(21.4.8 MULE) установить требуемую кодировку для загруженного в буфер документа. Вот в чём дело. В init.el установлена language-environment-Cyrillic-koi8. Ввод и отбражение введенных русских букв идёт на ура. НО ряд документов в кодировке koi8-r прочитать не могу: вместо русских букв латинские с акцентами. При переключении кодовой системы с RAW на KOI8, латинские с акцентами остаются. Причём русские буквы нормально вводятся в такие документы. При попытке открыть сохраненные после ввода русских букв документы вместо текствых символов вижу \201 \201 \201. Чисто латинские буквы отображаются правильно. В общем, болезнь какая-то. Если кто знает в каком точно мануале разбирается такая ситуация, просьба дать ссылку.

aab
()

Не может ли всеуважаемый ALL посоветовать, как заставить-таки XEmacs(21.4.8 MULE) установить требуемую кодировку для загруженного в буфер документа? Вот в чём дело. В init.el установлена language-environment-Cyrillic-koi8. Ввод и отбражение введенных русских букв идёт на ура. НО ряд документов в кодировке koi8-r прочитать не могу: вместо русских букв латинские с акцентами. При переключении кодовой системы с RAW на KOI8, латинские с акцентами остаются. Причём русские буквы нормально вводятся в такие документы. При попытке открыть сохраненные после ввода русских букв документы вместо текствых символов вижу \201 \201 \201. Чисто латинские буквы отображаются правильно. В общем, болезнь какая-то. Если кто знает в каком точно мануале разбирается такая ситуация, просьба дать ссылку.

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