xref: /vim-8.2.3635/runtime/ftplugin/python.vim (revision 92dff182)
1071d4279SBram Moolenaar" Vim filetype plugin file
2071d4279SBram Moolenaar" Language:	python
3071d4279SBram Moolenaar" Maintainer:	Johannes Zellner <[email protected]>
4*92dff182SBram Moolenaar" Last Change:	2014 Feb 09
5b1332080SBram 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#
14*92dff182SBram Moolenaarsetlocal include=^\\s*\\(from\\\|import\\)
15071d4279SBram Moolenaarsetlocal includeexpr=substitute(v:fname,'\\.','/','g')
16071d4279SBram Moolenaarsetlocal suffixesadd=.py
1736782084SBram Moolenaarsetlocal comments=b:#,fb:-
1836782084SBram 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
2936782084SBram Moolenaarif !exists('*<SID>Python_jump')
30071d4279SBram Moolenaar  fun! <SID>Python_jump(motion) range
31071d4279SBram Moolenaar      let cnt = v:count1
32071d4279SBram Moolenaar      let save = @/    " save last search pattern
33071d4279SBram Moolenaar      mark '
34071d4279SBram Moolenaar      while cnt > 0
35071d4279SBram Moolenaar	  silent! exe a:motion
36071d4279SBram Moolenaar	  let cnt = cnt - 1
37071d4279SBram Moolenaar      endwhile
38071d4279SBram Moolenaar      call histdel('/', -1)
39071d4279SBram Moolenaar      let @/ = save    " restore last search pattern
40071d4279SBram Moolenaar  endfun
4136782084SBram Moolenaarendif
42071d4279SBram Moolenaar
4336782084SBram Moolenaarif has("browsefilter") && !exists("b:browsefilter")
44071d4279SBram Moolenaar    let b:browsefilter = "Python Files (*.py)\t*.py\n" .
45071d4279SBram Moolenaar		       \ "All Files (*.*)\t*.*\n"
46071d4279SBram Moolenaarendif
479a7224b5SBram Moolenaar
48b1332080SBram Moolenaar" As suggested by PEP8.
49b1332080SBram Moolenaarsetlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
50b1332080SBram Moolenaar
51b1332080SBram Moolenaar" First time: try finding "pydoc".
52b1332080SBram Moolenaarif !exists('g:pydoc_executable')
53b1332080SBram Moolenaar    if executable('pydoc')
54b1332080SBram Moolenaar        let g:pydoc_executable = 1
55b1332080SBram Moolenaar    else
56b1332080SBram Moolenaar        let g:pydoc_executable = 0
57b1332080SBram Moolenaar    endif
58b1332080SBram Moolenaarendif
59b1332080SBram Moolenaar" If "pydoc" was found use it for keywordprg.
60b1332080SBram Moolenaarif g:pydoc_executable
61b1332080SBram Moolenaar    setlocal keywordprg=pydoc
62b1332080SBram Moolenaarendif
63b1332080SBram Moolenaar
649a7224b5SBram Moolenaarlet &cpo = s:keepcpo
659a7224b5SBram Moolenaarunlet s:keepcpo
66