VIM과 함께 Perl의 포드를 어떻게 자동으로 보낼 수 있습니까?
문제
VIM으로 파일을 편집하고 포드를 자동으로 접 히려고합니다 (PERL이 아닌 포드 만). 나는 그것을 작동시킬 수 없다. 선과 유형을 수동으로 강조 할 수 있기 때문에 직접 접을 수 있습니다. zF
그리고 제대로 접습니다.
누구든지 이것에 빛을 발할 수 있습니까?
해결책
당신은 잊었
:set foldmethod=syntax
:setf perl
:syntax on
:set foldenable
:syn region POD start=/^=head[123]/ end=/^=cut/ fold
다른 팁
다음을 붙여 넣으십시오 끝 귀하의 ~/.vimrc 파일 :
fu! MyFoldSettings()
set foldmethod=expr
set foldexpression=MyFoldLevel(v:lnum)
set foldenable
set foldminlines=1
endf
fu! MyFoldLevel(lev)
let mytext = getline(a:lev)
let result="="
if mytext =~ '^=item'
let result=">3"
elsei mytext =~ '^=back'
let result="<2"
elsei mytext =~ '^=over'
let result=">2"
elsei mytext =~ '^=cut'
let result="<1"
elsei mytext =~ '^=\w\+'
let result='>1'
en
return result
endf
augroup MyFoldSettings_AutoCommands
au!
au BufReadPost {*.pl,*.pod,*.pm} MyFoldSettings()
augroup END
이것은 대부분의 경우 작동해야합니다. 빠르고 더러운 예일 뿐이지 만 더 많은 기능이 필요한 경우 더 많이 추가 할 수 있습니다. 또한 이것이 활성화되어 있는지 확인하려면 Modeline을 추가 할 수 있습니다.
# vim:fen:fdo=hor:fcl=all:fdm=expr:fde=MyFoldLevel(v:lnum):fml=1
이 시점에서 접힌 텍스트가 표시되지 않으면 'foldopen = hor'및 'foldclose = all'을 설정하여 접힘을 더 쉽게 내리거나 내립니다. 또한 다른 파일 또는 파일 파일에 적용 해야하는 경우 AU (AutoCommand)를 설정할 수 있습니다. 건배.
이것을 .vimrc에 넣을 수 있습니다.
au FileType perl
\ setlocal foldexpr=getline(v:lnum)=~'^=cut'?'<1':getline(v:lnum)=~'^='?'1':'=' |
\ setlocal foldmethod=expr
perl_fold_* 변수를 정의하면 시스템 Perl Syntax Highlighter가 나머지를 처리합니다.
.VIMRC에서 추가하십시오
let perl_fold=1
let perl_fold_blocks=1
이것이 제가 사용하는 것입니다.
set syntax
augroup perl_folding
au!
autocmd FileType perl setlocal foldmethod=syntax
autocmd FileType perl setlocal foldlevel=1
autocmd FileType perl let perl_fold = 1
autocmd FileType perl let perl_fold_blocks = 1
autocmd FileType perl setlocal foldenable
au BufRead,BufNewFile *.pm set filetype=perl
augroup END
제휴하지 않습니다 StackOverflow