有没有办法命名 vim 折叠?
Is there a way to name vim folds?
有没有办法命名 vim 折叠?
我知道通过使用注释或 foldtext 方法可以有效地命名折叠。但是,我正在编写一个纯 JSON 的 Azure 资源管理器模板,因此它不允许评论。
可以通过 foldtext 选项设置折叠 "name"。这是我为 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
有没有办法命名 vim 折叠?
我知道通过使用注释或 foldtext 方法可以有效地命名折叠。但是,我正在编写一个纯 JSON 的 Azure 资源管理器模板,因此它不允许评论。
可以通过 foldtext 选项设置折叠 "name"。这是我为 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