2013-05-06 32 views
0

我試圖自定義vim摺疊樣式,並且卡住了縮進。我知道這已被要求多次在這裏,我使用這個命令(這似乎爲別人打工)來測試折的外觀:vim將文本與前面的空格對齊

:set foldtext=' '.foldtext() 

然而,這給了我「未知選項」錯誤。很明顯,它不接受只包含空格的字符串,因爲這樣可以很好地工作,並且在摺疊的開始處添加了'mytext'(012)。

它爲什麼不工作,它是如何工作的?

回答

1

你只需要逃避空間。改用它。

:set foldtext='\ '.foldtext() 

的空間造成VIM認爲你想摺疊文本設置爲',然後'.foldtext()是下一個參數設置。然而,這是不是你想要的和錯誤原因的錯誤消息是

E518: Unknown option: '.foldtext() 

擺脫空間讓Vim知道foldtext='\ '.foldtext()是一個參數,而不是兩個。

+0

啊哈,謝謝!這很有效,奇怪的是,我在網上發現了大約10種不同的版本,這些版本不適合我,但爲別人工作...... – sashkello 2013-05-06 23:51:06

0

如果你喜歡對齊的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\"', '')"