Я пытаюсь выяснить, почему сворачивание не работает с многострочными комментариями, и у меня нет идей.
Давайте рассмотрим такой пример:
#include <stdio.h>
#include <stdlib.h>
void
panic(void) /* {{{ */
{
abort();
}
/* }}} */
void
say_hello(void) /* {{{ */
{
printf("Hello, World \n");
}
/* }}} */
void
say_goodbye(void) /* {{{ */
{
printf("Good Bye, World \n");
panic();
}
/* }}} */
int
main(void) /* {{{ */
{
void (*message) (void);
message = say_goodbye;
message();
message = say_hello;
message();
return 0;
}
/* }}} */
Следующие моделины работают как положено. Открывая файл, я вижу, что весь код свернут:
/* vim600: set noet sw=4 ts=4 fdm=marker : */
и
// vim600: noet sw=4 ts=4 fdm=marker
Команда :verbose set syntax filetype foldmethod foldexpr
показывает ожидаемый результат
syntax=c
Last set from /usr/share/vim/vim74/syntax/syntax.vim
filetype=c
Last set from /usr/share/vim/vim74/filetype.vim
foldmethod=marker
Last set from modeline
foldexpr=0
Однако любые варианты с многострочными комментариями не дают желаемого результата. Например:
/*
* vim600: noet sw=4 ts=4 fdm=marker
* vim<600: noet sw=4 ts=4
*/
или даже
/* Modeline for ViM {{{
* vim: noet:sw=4:ts=4
* vim600: noet:sw=4:ts=4:fdm=marker
* }}} */
Не будет автоматически сворачивать код при открытии файла:
syntax=c
Last set from /usr/share/vim/vim74/syntax/syntax.vim
filetype=c
Last set from /usr/share/vim/vim74/filetype.vim
foldmethod=manual
foldexpr=0