Свертывание кода в Emacs [дубликат]
-
05-07-2019 - |
Вопрос
Возможный дубликат:
Как добиться эффекта свертывания кода в emacs
Отличной особенностью Dreamweaver является свертывание кода любых строк текста - рекурсивно!
Это фантастика, я могу сложить любой текст или код, независимо от языка. Я работаю с существующими системами; Я не редактирую хорошо написанный код или код на одном языке и т. Д., В основном HTML, смешанный с бог-знает-что. Складные линии делают понимание намного проще и быстрее. К сожалению, эта функция only мне нравится в Dreamweaver.
Есть ли сворачивание кода для Emacs с похожей целью?
Решение
Существует режим складывания , второстепенный режим. К сожалению, это навязчиво: вы должны вручную аннотировать сгибы специальными комментариями, которые загромождают код, когда вы не используете режим (или когда делитесь кодом с другими, кто его не использует). Лучший режим не изменит ваш код на работу.
Позвольте мне добавить: есть дубликат этого, который стоит посмотреть: Как добиться эффекта сворачивания кода в Emacs .
Другие советы
hide-show ( hs-minor-mode
) - это второстепенный режим, который будет делать что-то вроде этого ...
Связывание ключей по умолчанию для запуска свертывания - C-c @ C-c
, что, на мой взгляд, довольно громоздко. Но тогда я тоже этим не пользуюсь.
Возможно, вы захотите поискать функцию set-селективный-дисплей
и переменную выборочный-дисплей
. Не совсем то, что вам нужно, но позволяет скрывать строки в зависимости от уровня отступа.
Я использую fold-dwim.el. Из вики Emacs:
fold-dwim.el - это унифицированный пользовательский интерфейс для режимов сворачивания / разметки Emacs. Он поддерживает fold.el, hideshow.el, outline.el, TeX-fold.el и nxml-outln.el
Вы можете получить его здесь:
http://www.emacswiki.org/emacs/FoldDwim
У меня есть это в моем .emacs:
(require 'fold-dwim)
(global-set-key [(C kp-4)] 'fold-dwim-hide-all)
(global-set-key [(C kp-5)] 'fold-dwim-toggle)
(global-set-key [(C kp-6)] 'fold-dwim-show-all)
Имейте в виду, что вам по-прежнему необходимо активировать режим hs-minor-mode, fold-mode и т. д., но мне проще использовать их таким образом.
Еще кое-что, на что вы можете посмотреть, это nxhtml-mode ; он не сворачивает код, но он по-разному выделяет смешанный код (т. е. HTML и PHP) в зависимости от его типа. Это дает вам аналогичный выигрыш в понятности без неловкости режима сворачивания. Я думаю, что этот подход больше подходит для Emacs, во-первых, потому что свертывание кода похоже на идею, ориентированную на мышь, которая плохо адаптируется к основному на клавиатуре интерфейсу Emacs, и во-вторых, потому что Emacs до некоторой степени облегчает навигацию по большому файлу. этот код может оставаться видимым, не мешая.
Если вам действительно нужно "что-то скрыть из заданного региона, а не пытаться понять синтаксис" " (в отличие от hideshow и других решений, основанных на синтаксическом анализе), и вам не нужно редактировать [свой] код " (в отличие от свертывания), то, я полагаю, вы имеете в виду, что вы не хотите, чтобы регионы были постоянными между различными сеансами редактирования. Тогда вы можете использовать http://www.emacswiki.org/emacs/HideRegion , чтобы скрыть пользователя выбранные регионы ...
(Но это странно. Младший режим сворачивания с постоянными отметками кажется гораздо более удобным решением.)