E490:在unix for vim中未找到折叠
我是vim新手,喜欢精彩的文字 我想在缩进的基础上折叠perl脚本的代码。我在网上查了一下,发现我需要 将以下设置保存到我的vimrc文件中E490:在unix for vim中未找到折叠,vim,Vim,我是vim新手,喜欢精彩的文字 我想在缩进的基础上折叠perl脚本的代码。我在网上查了一下,发现我需要 将以下设置保存到我的vimrc文件中 "fold setting" "folding settings set foldmethod=indent "fold based on indent set foldnestmax=10 "deepest fold is 10 levels set nofoldenable
"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:未找到折叠
错误
示例perl代码
sub foo { #want to fold the code based on closing braces
print "bar";
}
我缺少了一些vim可以使用的东西您可以将此脚本放入
~/.vim/ftplugin/perl.vim
(如果这些文件不存在,请创建它们)
函数GetPerlFold()
如果getline(v:lnum)=~'^\s*sub\s'
返回“>1”
elseif getline(v:lnum)=~'\}\s*$'
让我的_perlnum=v:lnum
让我的_perlmax=行($)
而(1)
让my_perlnum=my_perlnum+1
如果我的perlnum>我的perlmax
return“在括号内添加另一行,如下所示
sub foo { #want to fold the code based on closing braces
print "foo";
print "bar";
}
将光标放在括号内的任何一行上,然后按za
,此时光标应折叠
:h'折叠方法'
|fold-indent| indent Lines with equal indent form a fold.
因此,只有方法中缩进的行才会缩进。但是,如果只有一行,那么就没有理由折叠,因为它仍然会占用一行。您的.vimrc中有
set nofoldenable
。这会关闭折叠。默认情况下,文件类型插件不会使用set foldenable
打开折叠,它们只是假设已设置了可折叠的
作为第一步,从.vimrc中删除它。然后,您将使用在.vimrc中设置的“缩进”折叠方法
但是Perl和其他一些语言也基于语法定义了折叠规则
autocmd FileType perl set foldmethod=syntax
autocmd FileType perl set foldmethod=syntax