xref: /vim-8.2.3635/runtime/ftplugin/python.vim (revision b1332080)
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