1071d4279SBram Moolenaar" Vim filetype plugin file 2071d4279SBram Moolenaar" Language: python 3*c95a302aSBram Moolenaar" Maintainer: James Sully <[email protected]> 4*c95a302aSBram Moolenaar" Previous Maintainer: Johannes Zellner <[email protected]> 5*c95a302aSBram Moolenaar" Last Change: Fri, 10 June 2016 6*c95a302aSBram Moolenaar" https://github.com/sullyj3/vim-ftplugin-python 7071d4279SBram Moolenaar 8071d4279SBram Moolenaarif exists("b:did_ftplugin") | finish | endif 9071d4279SBram Moolenaarlet b:did_ftplugin = 1 109a7224b5SBram Moolenaarlet s:keepcpo= &cpo 119a7224b5SBram Moolenaarset cpo&vim 12071d4279SBram Moolenaar 13071d4279SBram Moolenaarsetlocal cinkeys-=0# 14071d4279SBram Moolenaarsetlocal indentkeys-=0# 1592dff182SBram Moolenaarsetlocal include=^\\s*\\(from\\\|import\\) 16071d4279SBram Moolenaarsetlocal includeexpr=substitute(v:fname,'\\.','/','g') 17071d4279SBram Moolenaarsetlocal suffixesadd=.py 1836782084SBram Moolenaarsetlocal comments=b:#,fb:- 1936782084SBram Moolenaarsetlocal commentstring=#\ %s 20071d4279SBram Moolenaar 2118144c84SBram Moolenaarsetlocal omnifunc=pythoncomplete#Complete 22a40ceaf8SBram Moolenaar 23071d4279SBram Moolenaarset wildignore+=*.pyc 24071d4279SBram Moolenaar 25*c95a302aSBram Moolenaarnnoremap <silent> <buffer> ]] :call <SID>Python_jump('/^\(class\\|def\)\>')<cr> 26*c95a302aSBram Moolenaarnnoremap <silent> <buffer> [[ :call <SID>Python_jump('?^\(class\\|def\)\>')<cr> 27*c95a302aSBram Moolenaarnnoremap <silent> <buffer> ]m :call <SID>Python_jump('/^\s*\(class\\|def\)\>')<cr> 28*c95a302aSBram Moolenaarnnoremap <silent> <buffer> [m :call <SID>Python_jump('?^\s*\(class\\|def\)\>')<cr> 29071d4279SBram Moolenaar 3036782084SBram Moolenaarif !exists('*<SID>Python_jump') 31071d4279SBram Moolenaar fun! <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 Moolenaar endfun 4236782084SBram Moolenaarendif 43071d4279SBram Moolenaar 4436782084SBram Moolenaarif has("browsefilter") && !exists("b:browsefilter") 45071d4279SBram Moolenaar let b:browsefilter = "Python Files (*.py)\t*.py\n" . 46071d4279SBram Moolenaar \ "All Files (*.*)\t*.*\n" 47071d4279SBram Moolenaarendif 489a7224b5SBram Moolenaar 49b1332080SBram Moolenaar" As suggested by PEP8. 50b1332080SBram Moolenaarsetlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8 51b1332080SBram Moolenaar 52b1332080SBram Moolenaar" First time: try finding "pydoc". 53b1332080SBram Moolenaarif !exists('g:pydoc_executable') 54b1332080SBram Moolenaar if executable('pydoc') 55b1332080SBram Moolenaar let g:pydoc_executable = 1 56b1332080SBram Moolenaar else 57b1332080SBram Moolenaar let g:pydoc_executable = 0 58b1332080SBram Moolenaar endif 59b1332080SBram Moolenaarendif 60b1332080SBram Moolenaar" If "pydoc" was found use it for keywordprg. 61b1332080SBram Moolenaarif g:pydoc_executable 62b1332080SBram Moolenaar setlocal keywordprg=pydoc 63b1332080SBram Moolenaarendif 64b1332080SBram Moolenaar 659a7224b5SBram Moolenaarlet &cpo = s:keepcpo 669a7224b5SBram Moolenaarunlet s:keepcpo 67