0

我正在尝试自定义 vim 折叠样式并坚持缩进。我知道这里已经被多次询问,我使用这个命令(这似乎对其他人有用)来测试折叠的外观:

:set foldtext=' '.foldtext()

然而,这给了我“未知选项”错误。显然,它不接受仅包含空格的字符串,因为这

:set foldtext='mytext'.foldtext()

工作正常并将“mytext”添加到折叠的开头。

为什么它不起作用,解决方法是什么?

4

2 回答 2

1

你只需要逃离这个空间。改用这个。

:set foldtext='\ '.foldtext()

该空间导致 vim 认为您要将 foldtext 设置为',然后'.foldtext()是要设置的下一个参数。但是,这不是您想要的,也是错误消息的原因

E518: Unknown option: '.foldtext()

转义空格告诉 vim 这foldtext='\ '.foldtext()是一个参数而不是两个参数。

于 2013-05-06T23:45:16.743 回答
0

如果您喜欢对齐的折叠文本,可以使用EightHeader插件。帮助示例:

如果你不喜欢默认的 'foldtext',你可以通过设置来自定义它 EightHeaderFolds()

例如,默认情况下闭合的折叠看起来像这样:

```+-- 45 lines: Fold level one
+--- 67 lines: Fold level two

如果您想将其更改为这种类型:

Fold level one................45 lines
  Fold level two..............67 lines

...然后您可以使用此功能:

let &foldtext = "EightHeaderFolds( '\\=s:fullwidth-2', 'left', [ repeat( '  ', v:foldlevel - 1 ), '.', '' ], '\\= s:foldlines . \" lines\"', '' )"
于 2014-04-26T12:26:44.473 回答