Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vim折叠文本,前面有空格_Vim_Folding - Fatal编程技术网

vim折叠文本,前面有空格

vim折叠文本,前面有空格,vim,folding,Vim,Folding,我正在尝试定制vim折叠样式,并坚持使用缩进。我知道这里已经多次询问过它,我使用这个命令(似乎对其他人有用)来测试折叠的外观: :set foldtext=' '.foldtext() 然而,这给了我“未知选项”错误。显然,它不接受只包含空格的字符串,因为 :set foldtext='mytext'.foldtext() 效果很好,可以在折叠的开头添加“mytext” 它为什么不起作用,怎么解决呢?你只需要逃离这个空间。用这个代替 :set foldtext='\ '.foldtext()

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

:set foldtext=' '.foldtext()
然而,这给了我“未知选项”错误。显然,它不接受只包含空格的字符串,因为

:set foldtext='mytext'.foldtext()
效果很好,可以在折叠的开头添加“mytext”


它为什么不起作用,怎么解决呢?

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

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

E518: Unknown option: '.foldtext()
转义空格告诉vim,
foldtext='\'.foldtext()
是一个参数,而不是两个。

如果您喜欢对齐的foldtext,可以使用插件。帮助中的示例:

如果您不喜欢默认的“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个不同的版本,它们对我不起作用,但对其他人起作用。。。