2017-03-29 38 views
1

當我關閉緩衝區中的第一個摺疊(正常模式下的zc)時,所有的摺疊都會自動關閉。有沒有辦法只關閉給定的摺疊而不關閉其餘的?我有foldmethod=syntax。用python觀察,但可能這適用於其他語言。vim不會摺疊第一個摺疊的所有東西

例蟒文件

enter image description here

zc上方法的()

enter image description here

正如你可以看到,所有的方法:abc被摺疊。期望的行爲是唯一方法a被摺疊,如下所示:

enter image description here

這隻發生在所述第一時間的摺疊在緩衝液封閉。重新打開所有摺疊後,zc只會關閉正確的摺疊。

編輯:我相信這與SimpylFold插件有關。我默認設置了nofoldenable。當我zc,它看起來像SimpylFoldfoldenable,它會自動摺疊所有的方法。

+0

您可以給我們一些示例代碼,以便我們可以按照您的描述重新創建它嗎?就其本身而言,您的描述可以通過幾種方式來解釋。 –

+0

@RandyMorris增加了屏幕截圖到問題 – BlackSheep

+0

這確實看起來不合適。如果沒有人回答,我明天再看看。不幸的是,我不能測試,直到那時。 –

回答

1

原因是與nofoldenable和插件SimpylFold奇怪的互動。我默認設置了nofoldenable。如果您有foldenable,除非添加其他命令,否則默認情況下關閉所有摺疊。

現在使用SimpylFold插件時,第一次使用zc時也會設置foldenable,這將關閉所有摺疊。

的解決方案是這樣的添加到您的~/.vimrc

autocmd FileType python setlocal foldenable foldlevel=20 

這使得能夠Python文件本地摺疊而留下的褶皺上緩衝開開。然後zc行爲正常。