LINUX.ORG.RU

XEmacs for fun


0

0

Демонстрация некоторых нетривиальных штучек:

1. Mode-depending фоновое изображение.

2. Modeline активного окна отличается от остальных (thanks to lg, идея описана здесь: http://www.linux.org.ru/profile/hbee/view-message.jsp?msgid=887863 ).

3. Ошибки компиляции и ворнинги идут разным цветом (весьма помогает в работе).

4. Текстовое контекстное меню работы lg - заменяет обычное, чтобы не использовать мышь ( http://lgarc.narod.ru/xemacs/index.html ).

5. Наконец, давно муссируемая тема - smart completion а-ля MSVS.

Window manager - XWEM ( http://www.xwem.org ), конечно же!

Интересно, lg расшифровывается как Lisp Guru? :)

>>> Просмотр (1024x768, 91 Kb)

★★★★

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

Можно поподробнее про пятый пункт?

CTpaHHuK
()

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

Хотелось бы узнать, как настроить такой же completion как на скрине.

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

> Хотелось бы узнать, как настроить такой же completion как на скрине.

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

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

> и у тебя там одна скобочка лишня ;)

Хулиганим потихоньку ;)

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

Вот в том-то и дело, что на тестовом коде... Почему-то на моем отказывается работать напрочь! %-) Если объявление и определение класса в разных файлах -- тупит, на локальных переменных -- тупит, про namespace -- вообще молчу... %-( Нет, как вариант конечно у меня руки не оттуда растут, и его надо "настроить"... В общем пока что "M-/" -- forever. ;-\

tarle
()

Очень полезный скрин, хоть и с извращением. Черный фон и женский силуэт выдают тайные наклонности, как нас учил великий Фрейдин ;).

Так как рюшечки я люблю (в меру), то сама раскладовка мне не очень.

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

Подсветка тоже несколько недоподсвеченная (на мой вкус).

Спасибо персональное за скрин ;), все же ты его запостил.

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

> Вот в том-то и дело, что на тестовом коде... Почему-то на моем отказывается работать напрочь!

Честно говоря, на реальном коде мне тоже не удалось его заставить работать. Да и тормоза заметные...

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

> Очень полезный скрин, хоть и с извращением. Черный фон и женский силуэт выдают тайные наклонности, как нас учил великий Фрейдин ;).

Боялся, что без голой бабы не пропустят и напишут "неинтересно" (шутка).

> Подсветка тоже несколько недоподсвеченная (на мой вкус).

Чувство меры остановило меня на этом. Не люблю салат на экране :)

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

> Как настроил разный цвет ворнингов и ошибок

[code]
(defconst my-compilation-font-lock-keywords (list
  '("[wW]arning:.*[\n]?.*" . font-lock-string-face) ; warning
  '("[eE]rror:.*[\n]?.*" . font-lock-warning-face) ; error
  '("\\(^[-_.\"A-Za-z0-9/+]+\\)\\(: *\\|, line \\)[0-9]+" 1 font-lock-comment-face t) ; filename
  '("^[-_.\"A-Za-z0-9/+]+\\(: *[0-9]+\\|, line [0-9]+\\)" 1 font-lock-keyword-face t) ; line number
  ) "my-compilation-font-lock-keywords")

(defun my-compilation-mode-setup ()
  ; ...
  (setf compilation-font-lock-keywords my-compilation-font-lock-keywords)
  ; ...
  )

(add-hook 'compilation-mode-hook 'my-compilation-mode-setup)
[/code]

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

> Понятно, что для разных компиляторов придётся сочинять разные регэкспы.

Не, должно быть кто-то это уже сделал. Надо на wiki поискать... Больно это естественно... Мне кажется, должен быть проще путь, как воспользоваться встроенным уже регекспом.

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

> Мне кажется, должен быть проще путь

Вполне возможно, тем более что работа с font-lockingом в обоих мирах сильно отличается.

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

>Понятно, что для разных компиляторов придётся сочинять разные регэкспы.

Причем при активном использовании шаблонов это все равно неработоспособно.

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

> Причем при активном использовании шаблонов это все равно неработоспособно.

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

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

Помоему в emacs-cvs итак разным цветом ворнинги и ошибки, без костылей. Уже сколько лет имаксу, а автодополнение ну никак нормальное не придумает человечество.

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

> Уже сколько лет имаксу, а автодополнение ну никак нормальное не придумает человечество.

Смотря что называть "нормальным"... ;) Может, на C++ вообще кодить не нормально. Хотя это не отмазка, конечно. Вот сейчас разбираюсь с другим пакетом, xrefactory, там тоже есть дополнение ( http://www.xref-tech.com/xrefactory/images/emacs/completion.png ).

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

>Ты это к чему? 

У меня нет под рукой достаточно живописного примера, так что пришлось искать google'ом.

g++  -g -O2 -DHAVE_CONFIG_H -DTEXT_UI -DNDEBUG -DCLIENT  -I/usr/home/rene/BOINC/boinc/api -I/usr/home/rene/BOINC/boinc/lib -I/usr/home/rene/BOINC/boinc/image_libs/ -I.. -I../db -c -o main.o main.cpp
In file included from seti_header.h:34,
                 from s_util.h:103,
                 from main.cpp:45:
../db/sqlblob.h: In instantiation of `sqlblob<coordinate_t>':
../db/schema_master.h:106:   instantiated from here
../db/sqlblob.h:107: error: template-id `xml_encode_string<coordinate_t>' for `std::basic_string<char, std::char_traits<char>, std::allocator<char> > xml_encode_string(const sqlblob<coordinate_t>&, tag_xml_encoding)' does not match any template declaration
../db/db_table.h: In instantiation of `db_table<receiver_config>':
../db/schema_master.h:124:   instantiated from here
../db/db_table.h:77: error: template-id `operator<< <receiver_config>' for `std::basic_ostream<char, std::char_traits<char> >& operator<<(std::basic_ostream<char, std::char_traits<char> >&, const db_table<receiver_config>&)' does not match any template declaration
../db/db_table.h:78: error: template-id `operator>><receiver_config>' for `std::basic_istream<char, std::char_traits<char> >& operator>>(std::basic_istream<char, std::char_traits<char> >&, db_table<receiver_config>&)' does not match any template declaration
../db/sqlblob.h: In instantiation of `sqlblob<float>':
../db/schema_master.h:136:   instantiated from here
../db/sqlblob.h:107: error: template-id `xml_encode_string<float>' for `std::basic_string<char, std::char_traits<char>, std::allocator<char> > xml_encode_string(const sqlblob<float>&, tag_xml_encoding)' does not match any template declaration

Насколько адекватно подсвечиваются ошибки?

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

> xrefactory

ухты, маст хэв! Тоже полез смотреть...

LX ★★
()

Воообще! =) Два очень качественных скриншота в один день я еще ни разу не видел. Класс!! Респект!

/me получил новый прилив сил, чтобы изучать emacs

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

> Насколько адекватно подсвечиваются ошибки?

Вполне адекватно. Все строки, начинающиеся с "error" - красные, остальные default.

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

Извращенцы. Нет, чтобы пользоваться нормальными редакторами и всё время уделять проектированию, а не настройке редактора.

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

> Все строки, начинающиеся с "error" - красные, остальные default.

Это, собственно, и есть неадекватно [сугубо на мой взгляд].

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

> Это, собственно, и есть неадекватно [сугубо на мой взгляд]

Да мне хватает. В принципе, регэкспами можно как угодно расцветить, так что не вижу проблемы.

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

>Извращенцы.

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

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

При _проектировании_, ни текстовый редактор, ни контупер вообще не нужен. Нужны лишь листок бумажки и карандаш ;)

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

>/me получил прилив сил, для того чтобы переползти на xwem

Растешь, совершенствуешься ;-)) Это почти как повышение по службе)) Может я когда-нибудь тоже достигну этой ступени ;)

php-coder ★★★★★
()
Ответ на: комментарий от hbee

По-моему для большинства задач хватает etags и M-/ более чем. Получается довольно гибкая система.

Имхо не стоит пытаться превратить имакс в visual studio, особого смысла в этом нет.

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

> При _проектировании_, ни текстовый редактор, ни контупер вообще не нужен. Нужны лишь листок бумажки и карандаш ;)

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

Что-то мне подсказывает что под проектированием разные люди понимают принципиально разные вещи.

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

> По-моему для большинства задач хватает etags и M-/ более чем. Получается довольно гибкая система. Имхо не стоит пытаться превратить имакс в visual studio, особого смысла в этом нет.

Согласен, я и в VS и в BCB всегда отключал smart completion, эта фича больше мешает, чем помогает. Добиться smart completion в Emacs - задача почти спортивного характера... Уже ясно, что парсить большие файлы на чистом elisp слишком медленно, нужны внешние программы, как это и сделано в xrefactory.

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

> Он не по любви раздаётся, а за деньги :)

Разведка донесла, что пробная версия полнофункциональна, а срок действия не ограничен ;)

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

Респект! Я вот тоже хочу перейти на xwem, но пока время нет, весна:) А вообще автодополнения часто нужно для билблиотечных классов, вот бы в была такая интерграция в с питоном в емаксе, как это сделано для lisp'а в slime, было бы вообще замечательно.

CrazyPit ★★★
()

клевейший скрин :)

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

> Ужасный скрин. Среднее между консолью и нормальным десктопом.

если принимать в рассчёт, что такое _нормальный_ скрин на лоре и насколько крута консоль, то это - почти похвала :)

а скрин действительно интересный

ezhi
()

Спасибо за скрин :)

Это было предпоследней каплей для перехода с emacs на xemacs (последней стало узнования что у xemacs есть gtk морда)... :)

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

Но только, по-моему, gtk первой версии. А это уже перестало канать :)

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

> Это было предпоследней каплей для перехода с emacs на xemacs

Не ходите деффки замуж, ничего хорошего ;)

GNU Emacs - выбор русского нигилиста! :) Оставайтесь с нами.

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

А я раздумывать уже кончил (:

К gnu emacs я уже привык (: Вроде он меня всем устраивает, но я не устаял от искушения, и скомпилировал себе xemacs-gtk... Да, gtk первый, что не позитивно... Вот так и остаются люди в своей песочнице...

Нигилиста, нигилиста... Кстати, а кто тут еще приверженец лагеря `живу в gnu emacs, переодически пытаюсь сбежать в xemacs, с каждым разом понимаю что стало там все хуже и хуже'?

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

Нет сомнений, что XEmacs - это круто. Но GNU Emacs это еще круче ;) А главное красивее и везде есть. Все же XEmacs он не вечен, может форкаться и ИМХО нужен лишь чтобы давить на консерваторов в GNU Emacs, чтобы не засиживались на месте.

Вот добавят функциональность, чтобы можно было попробовать емаксовый оконный менеджер и вообще будет сказка ;).

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

ммм, думаю еще чуть-чуть и его можно будет грузить вместо wm :)

Иногда хочется запускать в нем программы, типо mplayer... Зачем?.. Не знаю, но хочется (:

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