我试图弄清楚为什么折叠不适用于多行注释,我也不知道。
让我们考虑这样的例子:
#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;
}
/* }}} */下面的modelines按照预期工作。打开文件时,我看到所有代码都已折叠:
/* 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发布于 2019-01-05 06:33:31
检查modelines的设置。Vim搜索modeline的第一行或最后一行。如果modelines设置为1,则modeline必须位于文件的第一行或最后一行。
modelines的默认值是5。这适用于您的示例。
请参阅:help modelines
https://stackoverflow.com/questions/54045245
复制相似问题