Вы можете использовать CEDET , чтобы сделать это. Этот пакет предоставляет режим global-semantic-tag-fold-mode, который позволяет сворачивать функции, классы / структуры, комментарии, пространства имен и т. Д. Он работает более корректно, чем другие пакеты, поскольку содержит всю синтаксическую информацию о коде.
Есть вступительная статья о CEDET , которая позволяет быстро начать работу с ним