1" Vim filetype plugin file 2" Language: Perl 3" Maintainer: vim-perl <[email protected]> 4" Homepage: http://github.com/vim-perl/vim-perl 5" Bugs/requests: http://github.com/vim-perl/vim-perl/issues 6" Last Change: 2013-07-21 7 8if exists("b:did_ftplugin") | finish | endif 9let b:did_ftplugin = 1 10 11" Make sure the continuation lines below do not cause problems in 12" compatibility mode. 13let s:save_cpo = &cpo 14set cpo-=C 15 16setlocal formatoptions-=t 17setlocal formatoptions+=crqol 18setlocal keywordprg=perldoc\ -f 19 20setlocal comments=:# 21setlocal commentstring=#%s 22 23" Change the browse dialog on Win32 to show mainly Perl-related files 24if has("gui_win32") 25 let b:browsefilter = "Perl Source Files (*.pl)\t*.pl\n" . 26 \ "Perl Modules (*.pm)\t*.pm\n" . 27 \ "Perl Documentation Files (*.pod)\t*.pod\n" . 28 \ "All Files (*.*)\t*.*\n" 29endif 30 31" Provided by Ned Konz <ned at bike-nomad dot com> 32"--------------------------------------------- 33setlocal include=\\<\\(use\\\|require\\)\\> 34setlocal includeexpr=substitute(substitute(substitute(v:fname,'::','/','g'),'->\*','',''),'$','.pm','') 35setlocal define=[^A-Za-z_] 36 37" The following line changes a global variable but is necessary to make 38" gf and similar commands work. The change to iskeyword was incorrect. 39" Thanks to Andrew Pimlott for pointing out the problem. If this causes a 40" problem for you, add an after/ftplugin/perl.vim file that contains 41" set isfname-=: 42set isfname+=: 43set iskeyword+=: 44 45" Set this once, globally. 46if !exists("perlpath") 47 if executable("perl") 48 try 49 if &shellxquote != '"' 50 let perlpath = system('perl -e "print join(q/,/,@INC)"') 51 else 52 let perlpath = system("perl -e 'print join(q/,/,@INC)'") 53 endif 54 let perlpath = substitute(perlpath,',.$',',,','') 55 catch /E145:/ 56 let perlpath = ".,," 57 endtry 58 else 59 " If we can't call perl to get its path, just default to using the 60 " current directory and the directory of the current file. 61 let perlpath = ".,," 62 endif 63endif 64 65" Append perlpath to the existing path value, if it is set. Since we don't 66" use += to do it because of the commas in perlpath, we have to handle the 67" global / local settings, too. 68if &l:path == "" 69 if &g:path == "" 70 let &l:path=perlpath 71 else 72 let &l:path=&g:path.",".perlpath 73 endif 74else 75 let &l:path=&l:path.",".perlpath 76endif 77"--------------------------------------------- 78 79" Undo the stuff we changed. 80let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf< kp< path<" . 81 \ " | unlet! b:browsefilter" 82 83" proper matching for matchit plugin 84let b:match_skip = 's:comment\|string\|perlQQ\|perlShellCommand\|perlHereDoc\|perlSubstitution\|perlTranslation\|perlMatch\|perlFormatField' 85 86" Restore the saved compatibility options. 87let &cpo = s:save_cpo 88unlet s:save_cpo 89