1071d4279SBram Moolenaar" Vim filetype plugin file 2071d4279SBram Moolenaar" Language: python 3071d4279SBram Moolenaar" Maintainer: Johannes Zellner <[email protected]> 4*b1332080SBram Moolenaar" Last Change: 2013 Sep 25 5*b1332080SBram Moolenaar" Last Change By Johannes: Wed, 21 Apr 2004 13:13:08 CEST 6071d4279SBram Moolenaar 7071d4279SBram Moolenaarif exists("b:did_ftplugin") | finish | endif 8071d4279SBram Moolenaarlet b:did_ftplugin = 1 99a7224b5SBram Moolenaarlet s:keepcpo= &cpo 109a7224b5SBram Moolenaarset cpo&vim 11071d4279SBram Moolenaar 12071d4279SBram Moolenaarsetlocal cinkeys-=0# 13071d4279SBram Moolenaarsetlocal indentkeys-=0# 14071d4279SBram Moolenaarsetlocal include=\s*\\(from\\\|import\\) 15071d4279SBram Moolenaarsetlocal includeexpr=substitute(v:fname,'\\.','/','g') 16071d4279SBram Moolenaarsetlocal suffixesadd=.py 17071d4279SBram Moolenaarsetlocal comments-=:% 18071d4279SBram Moolenaarsetlocal commentstring=#%s 19071d4279SBram Moolenaar 2018144c84SBram Moolenaarsetlocal omnifunc=pythoncomplete#Complete 21a40ceaf8SBram Moolenaar 22071d4279SBram Moolenaarset wildignore+=*.pyc 23071d4279SBram Moolenaar 24071d4279SBram Moolenaarnnoremap <silent> <buffer> ]] :call <SID>Python_jump('/^\(class\\|def\)')<cr> 25071d4279SBram Moolenaarnnoremap <silent> <buffer> [[ :call <SID>Python_jump('?^\(class\\|def\)')<cr> 26071d4279SBram Moolenaarnnoremap <silent> <buffer> ]m :call <SID>Python_jump('/^\s*\(class\\|def\)')<cr> 27071d4279SBram Moolenaarnnoremap <silent> <buffer> [m :call <SID>Python_jump('?^\s*\(class\\|def\)')<cr> 28071d4279SBram Moolenaar 29071d4279SBram Moolenaarif exists('*<SID>Python_jump') | finish | endif 30071d4279SBram Moolenaar 31071d4279SBram Moolenaarfun! <SID>Python_jump(motion) range 32071d4279SBram Moolenaar let cnt = v:count1 33071d4279SBram Moolenaar let save = @/ " save last search pattern 34071d4279SBram Moolenaar mark ' 35071d4279SBram Moolenaar while cnt > 0 36071d4279SBram Moolenaar silent! exe a:motion 37071d4279SBram Moolenaar let cnt = cnt - 1 38071d4279SBram Moolenaar endwhile 39071d4279SBram Moolenaar call histdel('/', -1) 40071d4279SBram Moolenaar let @/ = save " restore last search pattern 41071d4279SBram Moolenaarendfun 42071d4279SBram Moolenaar 43071d4279SBram Moolenaarif has("gui_win32") && !exists("b:browsefilter") 44071d4279SBram Moolenaar let b:browsefilter = "Python Files (*.py)\t*.py\n" . 45071d4279SBram Moolenaar \ "All Files (*.*)\t*.*\n" 46071d4279SBram Moolenaarendif 479a7224b5SBram Moolenaar 48*b1332080SBram Moolenaar" As suggested by PEP8. 49*b1332080SBram Moolenaarsetlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8 50*b1332080SBram Moolenaar 51*b1332080SBram Moolenaar" First time: try finding "pydoc". 52*b1332080SBram Moolenaarif !exists('g:pydoc_executable') 53*b1332080SBram Moolenaar if executable('pydoc') 54*b1332080SBram Moolenaar let g:pydoc_executable = 1 55*b1332080SBram Moolenaar else 56*b1332080SBram Moolenaar let g:pydoc_executable = 0 57*b1332080SBram Moolenaar endif 58*b1332080SBram Moolenaarendif 59*b1332080SBram Moolenaar" If "pydoc" was found use it for keywordprg. 60*b1332080SBram Moolenaarif g:pydoc_executable 61*b1332080SBram Moolenaar setlocal keywordprg=pydoc 62*b1332080SBram Moolenaarendif 63*b1332080SBram Moolenaar 649a7224b5SBram Moolenaarlet &cpo = s:keepcpo 659a7224b5SBram Moolenaarunlet s:keepcpo 66