1071d4279SBram Moolenaar" Vim filetype plugin file 2071d4279SBram Moolenaar" Language: python 3c95a302aSBram Moolenaar" Maintainer: James Sully <[email protected]> 4c95a302aSBram Moolenaar" Previous Maintainer: Johannes Zellner <[email protected]> 5*e18dbe86SBram Moolenaar" Last Change: Wed, 29 June 2016 6c95a302aSBram 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*e18dbe86SBram Moolenaarnnoremap <silent> <buffer> ]] :call <SID>Python_jump('n', '\v%$\|^(class\|def)>', 'W')<cr> 26*e18dbe86SBram Moolenaarnnoremap <silent> <buffer> [[ :call <SID>Python_jump('n', '\v^(class\|def)>', 'Wb')<cr> 27*e18dbe86SBram Moolenaarnnoremap <silent> <buffer> ]m :call <SID>Python_jump('n', '\v%$\|^\s*(class\|def)>', 'W')<cr> 28*e18dbe86SBram Moolenaarnnoremap <silent> <buffer> [m :call <SID>Python_jump('n', '\v^\s*(class\|def)>', 'Wb')<cr> 29*e18dbe86SBram Moolenaar 30*e18dbe86SBram Moolenaarxnoremap <silent> <buffer> ]] :call <SID>Python_jump('x', '\v%$\|^(class\|def)>', 'W')<cr> 31*e18dbe86SBram Moolenaarxnoremap <silent> <buffer> [[ :call <SID>Python_jump('x', '\v^(class\|def)>', 'Wb')<cr> 32*e18dbe86SBram Moolenaarxnoremap <silent> <buffer> ]m :call <SID>Python_jump('x', '\v%$\|^\s*(class\|def)>', 'W')<cr> 33*e18dbe86SBram Moolenaarxnoremap <silent> <buffer> [m :call <SID>Python_jump('x', '\v^\s*(class\|def)>', 'Wb')<cr> 34071d4279SBram Moolenaar 3536782084SBram Moolenaarif !exists('*<SID>Python_jump') 36*e18dbe86SBram Moolenaar fun! <SID>Python_jump(mode, motion, flags) range 37*e18dbe86SBram Moolenaar if a:mode == 'x' 38*e18dbe86SBram Moolenaar normal! gv 39*e18dbe86SBram Moolenaar endif 40*e18dbe86SBram Moolenaar 41*e18dbe86SBram Moolenaar normal! 0 42*e18dbe86SBram Moolenaar 43071d4279SBram Moolenaar let cnt = v:count1 44071d4279SBram Moolenaar mark ' 45071d4279SBram Moolenaar while cnt > 0 46*e18dbe86SBram Moolenaar call search(a:motion, a:flags) 47071d4279SBram Moolenaar let cnt = cnt - 1 48071d4279SBram Moolenaar endwhile 49*e18dbe86SBram Moolenaar 50*e18dbe86SBram Moolenaar normal! ^ 51071d4279SBram Moolenaar endfun 5236782084SBram Moolenaarendif 53071d4279SBram Moolenaar 5436782084SBram Moolenaarif has("browsefilter") && !exists("b:browsefilter") 55071d4279SBram Moolenaar let b:browsefilter = "Python Files (*.py)\t*.py\n" . 56071d4279SBram Moolenaar \ "All Files (*.*)\t*.*\n" 57071d4279SBram Moolenaarendif 589a7224b5SBram Moolenaar 59b1332080SBram Moolenaar" As suggested by PEP8. 60b1332080SBram Moolenaarsetlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8 61b1332080SBram Moolenaar 62b1332080SBram Moolenaar" First time: try finding "pydoc". 63b1332080SBram Moolenaarif !exists('g:pydoc_executable') 64b1332080SBram Moolenaar if executable('pydoc') 65b1332080SBram Moolenaar let g:pydoc_executable = 1 66b1332080SBram Moolenaar else 67b1332080SBram Moolenaar let g:pydoc_executable = 0 68b1332080SBram Moolenaar endif 69b1332080SBram Moolenaarendif 70b1332080SBram Moolenaar" If "pydoc" was found use it for keywordprg. 71b1332080SBram Moolenaarif g:pydoc_executable 72b1332080SBram Moolenaar setlocal keywordprg=pydoc 73b1332080SBram Moolenaarendif 74b1332080SBram Moolenaar 759a7224b5SBram Moolenaarlet &cpo = s:keepcpo 769a7224b5SBram Moolenaarunlet s:keepcpo 77