有没有办法命名vim折叠?
据我所知,通过使用注释或foldtext方法,您可以有效地命名折叠。但是,我正在编写一个纯粹的JSON Azure资源管理器模板,因此它不允许注释。
答案 0 :(得分:1)
折叠"名称"可以通过foldtext选项设置。这就是我为ARM模板所做的事情:
set foldtext=ARMFoldText()
function! ARMFoldText()
" Between foldstart and foldend, return the line that has the name
let i = v:foldstart + 1
while i < v:foldend
let foldName = getline(i)
if foldName =~# '^\s*"name":'
break
endif
let i += 1
endwhile
"if foldlevel = 2 return foldName else return foldtext
if foldlevel(v:foldstart) == 2
return foldName
else
return foldtext()
endif
endfunction
这就是我的自定义折叠表达式的样子:
1 {
2 "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
3 "contentVersion": "1.0.0.0",
4 +-- 24 lines: "variables": {---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
28 +-- 16 lines: "parameters": {--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
44 "resources": {
45 "name": "[variables('vnet-name')]",-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
66 "name": "[variables(ip-public-name)]",--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
75 "name": "[variables('lb-web-01')]",--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
115 "name": "[variables('nic-01-name')]",------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
148 "name": "[variables('sg-app-01')]",--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
172 "name": "[variables('sg-web-01')]",-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
还有很多其他的例子可供使用。我引用的是以下内容:
http://dhruvasagar.com/2013/03/28/vim-better-foldtext http://vim.wikia.com/wiki/Customize_text_for_closed_folds