我是新手,喜欢崇高的文字
我想基于缩进折叠perl脚本的代码。我在网上浏览后发现我需要在vimrc文件中进行以下设置
"fold setting"
"folding settings
set foldmethod=indent "fold based on indent
set foldnestmax=10 "deepest fold is 10 levels
set nofoldenable "dont fold by default
set foldlevel=1 "this is just what i use
当我尝试在Vim中使用'za'cmd时会抛出E490: No fold found
错误
示例Perl代码
sub foo { #want to fold the code based on closing braces
print "bar";
}
我是否缺少一些让Vim正常工作的东西
您可以将该脚本放入其中~/.vim/ftplugin/perl.vim
(如果尚不存在,请创建这些文件)。
function GetPerlFold()
if getline(v:lnum) =~ '^\s*sub\s'
return ">1"
elseif getline(v:lnum) =~ '\}\s*$'
let my_perlnum = v:lnum
let my_perlmax = line("$")
while (1)
let my_perlnum = my_perlnum + 1
if my_perlnum > my_perlmax
return "<1"
endif
let my_perldata = getline(my_perlnum)
if my_perldata =~ '^\s*\(\#.*\)\?$'
" do nothing
elseif my_perldata =~ '^\s*sub\s'
return "<1"
else
return "="
endif
endwhile
else
return "="
endif
endfunction
setlocal foldexpr=GetPerlFold()
setlocal foldmethod=ex
此代码是从这里获取的。
确保您set foldmethod=indent
从自己身上移除.vimrc
现在,应该正确折叠perl中的潜艇。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句