有没有办法命名vim折叠



有办法命名vim折叠吗?

我知道通过使用注释或foldtext方法可以有效地命名折叠。然而,我正在编写一个Azure资源管理器模板,它是纯JSON,因此不允许注释。

可以通过foldtext选项设置fold"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-foldtexthttp://vim.wikia.com/wiki/Customize_text_for_closed_folds

最新更新