Подтвердить что ты не робот

Почему в emacs нет фальцовки кода?

Есть несколько вопросов о SO о том, как получить сворачивание кода в emacs, без необходимости добавлять какие-либо специальные символы, такие как "маркеры" в комментариях, например. Кто-то сказал, что "нет идеального решения".
Кажется, что это можно сделать, проанализировав источник написанной программы и найдите соответствующие скобки или скобки или сделайте это на основе отступов. Вы также можете использовать комбинацию скриптов, которые используют разные методы.
Итак, почему принято считать, что нет "идеального" и простого способа получить кодовое сложение в emac? Есть ли что-то в emacs или его архитектура, что затрудняет программирование? Если бы это было легко, после стольких лет умных людей, использующих emacs, вы бы подумали, что кто-то написал бы это.

4b9b3361

Ответ 1

Вам следует играть с Hideshow (hs-minor-mode) в сочетании с fold-dwim.el. Он делает именно то, что вы предложили, - ищет соответствующие фигурные скобки /parens и может быть настроен на возврат в отступ.

Там есть надежное решение для сгибания для большинства распространенных языков, а если нет, все складывающиеся пакеты могут быть очень настраиваемыми. Фактически, единственным недостатком является распространение методов складывания (fold-dwim помогает в этом немного); Раньше я думал, что, поскольку никто не может указать мне на окончательное решение, складывание было трудным или невозможным - на самом деле, наоборот. Вам просто нужно немного поэкспериментировать, чтобы увидеть, что лучше всего подходит для вас.

Я использовал folding.el (например, для группировки файлов в .emacs), outline-minor-mode и теперь Hideshow. Там есть вероятность, что никто из них не будет работать точно так, как вы хотите прямо из коробки (например, вам может понадобиться настроить регулярное выражение или определить фальцованные метки для folding.el), но это оказывается легким. Клавиши по умолчанию могут быть несколько барочными, но это исправлено с помощью fold-dwim и/или hideshow-org (настоятельно рекомендуется для Hideshow, cf на странице hideshow Emacswiki, вы также можете имитировать поведение hideshow-org для других режимов сгибания, и-грязный элипс и fold-dwim). После того, как вы выясните предпочтительную настройку, просто включите ее автоматически с помощью перехватов или буферных локальных переменных и наблюдайте, как ваш код сбрасывается:) (см. Ниже, обратите внимание на clickable + в поле).

alt text http://img198.imageshack.us/img198/4029/screenshot1oc.png

Ответ 2

Вы должны посмотреть в CEDET. Он отлично работает с кодовым сворачиванием и многими другими причудливыми функциями, которые вы, вероятно, ищете, если переходите от IDE к Emacs.

http://cedet.sourceforge.net/

В частности, ищите `global-semantic-tag-folding-mode '

Ответ 3

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

Ответ 4

Но на самом деле существуют различные решения для Emacs; Я перечислил некоторые из них (те, с которыми мне приходилось сталкиваться) в http://en.wikipedia.org/w/index.php?title=Code_folding&oldid=375300945#cite_note-2.

Хотя, есть вещи, которые мне не хватает: в некоторых случаях я хотел бы объединить несколько механизмов: например, для уценки, я хотел бы использовать сводную фальцовку (для разделов) и отступы (для цитат, кодовых блоков и т.д.) - чтобы не беспокоиться о реализации полного анализатора для уценки.

Вот они:

Фальцовка на основе токенов в Emacs

Фальцовка, основанная на токенах в Emacs, влечет складной второстепенный режим.

Откидывание на основе отступа в Emacs

Можно использовать функцию set-selective-display в Emacs, чтобы скрыть строки на основе уровня отступов, как предложено в Универсальный сворачивание кода..

Синтаксис-зависимая сворачивание в Emacs

Синтаксис-зависимая сворачивание в Emacs поддерживается:

Несколько механизмов сгибания унифицированы интерфейс fold-dwim.

См. также http://www.emacswiki.org/emacs/CategoryHideStuff.

Складывание выбранных пользователем областей в Emacs

Складывание выбранных пользователем регионов в Emacs осуществляется командой hide-region-hide.

Ответ 5

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

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

Ответ 6

Да Наконец, в emacs есть сводка кода. Попробуйте использовать yafolding в библиотеке пакетов melpa.org.