Почему в Emacs нет ни одного складывания кода?

StackOverflow https://stackoverflow.com/questions/2399612

  •  25-09-2019
  •  | 
  •  

Вопрос

Есть несколько вопросов на так о том, как получить складку кода в Emacs, без необходимости добавлять какие-либо специальные символы, такие как «маркеры» в комментариях. Кто-то сказал, что было «нет идеального решения».
Похоже, что это можно сделать путем разбора источника написания программы и искать сопоставление скобок или кронштейна или сделать его на основе отступа. Вы также можете использовать комбинацию сценариев, которые используют разные методы.
Так почему же считается, что нет «идеального» и прямого способа получить складную коду в EMAC? Есть ли что-то в эмаклах или его архитектуре, что усердно программировать? Если бы было легко, после стольких лет умных людей, использующих Emacs, вы подумали бы, что кто-то написал бы это.

Это было полезно?

Решение

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

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

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

Alt Text http://img198.imageshack.us/img198/4029/sreenshot1oc.png.

Другие советы

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

http://dedet.sourceforge.net/

В частности, ищите «Global-Semantic-Tag-Folding-Mode»

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

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

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

Они здесь:

Токен на основе складывания в Emacs

Складывание на основе токена в эмаклах соблюдается складной незначительный режим.

Складывание на основе вдавливания в Emacs

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

Синтаксис-зависимый складной в Emacs

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

Несколько складных механизмов единыскладной dwim. интерфейс.

Смотрите также http://www.emacswiki.org/emacs/categoryhidestuff..

Складное отделение пользовательских регионов в Emacs

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

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

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

Да, наконец, складывание кода в Emacs. Попробуйте Yafolding присутствует в библиотеке пакетов Melpa.org.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top