我试图自定义vim折叠样式,并且卡住了缩进。我知道这已被要求多次在这里,我使用这个命令(这似乎为别人打工)来测试折的外观:vim将文本与前面的空格对齐
:set foldtext=' '.foldtext()
然而,这给了我“未知选项”错误。很明显,它不接受只包含空格的字符串,因为这样可以很好地工作,并且在折叠的开始处添加了'mytext'(012)。
它为什么不工作,它是如何工作的?
我试图自定义vim折叠样式,并且卡住了缩进。我知道这已被要求多次在这里,我使用这个命令(这似乎为别人打工)来测试折的外观:vim将文本与前面的空格对齐
:set foldtext=' '.foldtext()
然而,这给了我“未知选项”错误。很明显,它不接受只包含空格的字符串,因为这样可以很好地工作,并且在折叠的开始处添加了'mytext'(012)。
它为什么不工作,它是如何工作的?
你只需要逃避空间。改用它。
:set foldtext='\ '.foldtext()
的空间造成VIM认为你想折叠文本设置为'
,然后'.foldtext()
是下一个参数设置。然而,这是不是你想要的和错误原因的错误消息是
E518: Unknown option: '.foldtext()
摆脱空间让Vim知道foldtext='\ '.foldtext()
是一个参数,而不是两个。
如果你喜欢对齐的foldtext,你可以使用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\"', '')"
啊哈,谢谢!这很有效,奇怪的是,我在网上发现了大约10种不同的版本,这些版本不适合我,但为别人工作...... – sashkello 2013-05-06 23:51:06