Моды применяются на весь буфер. Удобно тем, что можно применять в ``chunks" спец. команды, НО: выглядит ппц как ужасно: при редактировании chunk'а c++-mode жутко изрисовывает документацию в latex, а latex-mode коверкает код, используя (под/над)строчные символы.
Вопрос: можно ли избавиться от коллизии модов для кода и документации? (как в org-mode)
Спасибо.
Установил пакет ``app-emacs/mmm-mode" (mmm-noweb.el присутствует), почитал info. Как-то там все запутано... Буду благодарен за конкретный рецепт использования этого мода.
Но у меня Emacs старый пока, поэтому не знаю, что произойдет. У меня куски кода распознает, но вот появились глюки в работе mmm с c++-mode. У меня как-то давно был написан кусок для web-правки (php+css+(x)html+js) и он как-то работал в Emacs 21, но сейчас при попытке его воскрешения из мертвых в Emacs 22 и редактирвования кусков c++ получаю ошибку (Wrong type argument: stringp, nil), с которой надо разбираться. Причем это, кажется, связано с тем как ведет себя c-mode с mmm-mode.
Поигрался с latex-mode-hook, noweb-mode-hook и mmm-*-hook - пока особо не помогло. Как вариант: можно использовать для редактирования noweb файлов mmm-mode без noweb-mode. Буду еще ковыряться.
>Поигрался с latex-mode-hook, noweb-mode-hook и mmm-*-hook - пока особо не помогло. Как вариант: можно использовать для редактирования noweb файлов mmm-mode без noweb-mode. Буду еще ковыряться.
А что именно не помогло? Не совсем понятно. Не завелось? В modeline видишь как режим переключается при проходе буфера? MMM там появилось?
1) без noweb-mode
mmm-mode работает более-менее удовлетворительно только с fundamental-mode + <smth.>-mode, с latex-mode + <smth.>-mode проблемы: modeline для chunk'а ``(LaTeX[C++/l] MMM Abbrev)", начертание символов меняет, синтаксис подсвечивает плохо. Возможно, проблема решаема, надо читать документацию к mmm-mode.
2) с noweb-mode
Если включить одновременно и noweb-mode и mmm-mode, то они будут сменяться после каждого перемещения каретки. Я таки добился, чтобы они кое-как работали вместе, но все равно проблемы из 1) остаются.
Надо будет полазить по инету, посмотреть, в чем разрабатывают проекты, использующие грамотное программирование...
>проблемы: modeline для chunk'а ``(LaTeX[C++/l] MMM Abbrev)", начертание символов меняет, синтаксис подсвечивает плохо. Возможно, проблема решаема, надо читать документацию к mmm-mode.
Однако видно, что mmm-noweb области у тебя распознал нормально (то есть <<blah>>= и [[blah]]), но вот у меня тоже синтаксис подсветил плохо и не во всех чанках позволяет редактировать код C++ вообще. У меня такая смесь, повторюсь, работала на Emacs 21. php-mode ведь производная от c-mode, как и c++-mode. Сейчас же то старое решение тоже не работает с такими же симптомами. Мне кажется, что mmm-mode и c-mode перестали работать номрально. Разбираться надо.
Да, а вот у меня символы внутри c++ не портятся LaTeX'ом. Или у тебя портится, когда preview делаешь?