我試圖自定義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