どのように私はvimのでPerlでPODをautofoldことができますか?
質問
私はVIMでファイルを編集し、POD自動的に折りたたまれた(ちょうどPODではなく、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
これは、ほとんどのケースで動作するはずです - それはちょうど迅速かつ汚い例だが、あなたはより多くの機能が必要な場合は、より多くの、あまりにもそれを追加することができます。
:また、これはあなたがモードラインを追加したい場合があります有効になっていることを確認してくださいします# vim:fen:fdo=hor:fcl=all:fdm=expr:fde=MyFoldLevel(v:lnum):fml=1
あなたはこの時点で折り畳まれたテキストを参照してくださいいけない場合は、、/簡単に折り目のうちにナビゲーションを行います「foldopen = HOR」と「foldcloseを= all」を設定してみてください。あなたは、これが他のファイルやfiletypsに適用する必要がある場合にも、それに応じて、AU(自動コマンド)を設定することができます。乾杯ます。
あなたはあなたの.vimrcでこれを置くことができます:
au FileType perl
\ setlocal foldexpr=getline(v:lnum)=~'^=cut'?'<1':getline(v:lnum)=~'^='?'1':'=' |
\ setlocal foldmethod=expr
ただ、システムのPerlのシンタックスハイライトは、残りの世話をする、perl_fold_ *変数を定義します。
の.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