首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过modeline激活VIM折叠标记

通过modeline激活VIM折叠标记
EN

Stack Overflow用户
提问于 2019-01-05 03:57:30
回答 1查看 624关注 0票数 0

我试图弄清楚为什么折叠不适用于多行注释,我也不知道。

让我们考虑这样的例子:

代码语言:javascript
复制
#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按照预期工作。打开文件时,我看到所有代码都已折叠:

代码语言:javascript
复制
/* vim600: set noet sw=4 ts=4 fdm=marker : */

代码语言:javascript
复制
// vim600: noet sw=4 ts=4 fdm=marker

命令:verbose set syntax filetype foldmethod foldexpr

显示预期输出

代码语言:javascript
复制
  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

但是,任何带有多行注释的变体都不会给出所需的结果。例如:

代码语言:javascript
复制
/*
 * vim600: noet sw=4 ts=4 fdm=marker
 * vim<600: noet sw=4 ts=4
 */

甚至是

代码语言:javascript
复制
/* Modeline for ViM {{{
 * vim: noet:sw=4:ts=4
 * vim600: noet:sw=4:ts=4:fdm=marker
 * }}} */

在打开文件时不会自动折叠代码:

代码语言:javascript
复制
  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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-05 06:33:31

检查modelines的设置。Vim搜索modeline的第一行或最后一行。如果modelines设置为1,则modeline必须位于文件的第一行或最后一行。

modelines的默认值是5。这适用于您的示例。

请参阅:help modelines

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54045245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档