From 5b77877888162f4e415fe9a7b8c5e9fb5dfb6ee1 Mon Sep 17 00:00:00 2001 From: Adam Stankiewicz Date: Wed, 27 Sep 2017 20:43:42 +0200 Subject: Add syntax files from upstream vim repository --- ftplugin/python.vim | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 ftplugin/python.vim (limited to 'ftplugin/python.vim') diff --git a/ftplugin/python.vim b/ftplugin/python.vim new file mode 100644 index 00000000..a625ba20 --- /dev/null +++ b/ftplugin/python.vim @@ -0,0 +1,92 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: python +" Maintainer: James Sully +" Previous Maintainer: Johannes Zellner +" Last Change: Tue, 09 October 2016 +" https://github.com/sullyj3/vim-ftplugin-python + +if exists("b:did_ftplugin") | finish | endif +let b:did_ftplugin = 1 +let s:keepcpo= &cpo +set cpo&vim + +setlocal cinkeys-=0# +setlocal indentkeys-=0# +setlocal include=^\\s*\\(from\\\|import\\) +setlocal includeexpr=substitute(v:fname,'\\.','/','g') +setlocal suffixesadd=.py +setlocal comments=b:#,fb:- +setlocal commentstring=#\ %s + +setlocal omnifunc=pythoncomplete#Complete + +set wildignore+=*.pyc + +let b:next_toplevel='\v%$\|^(class\|def\|async def)>' +let b:prev_toplevel='\v^(class\|def\|async def)>' +let b:next='\v%$\|^\s*(class\|def\|async def)>' +let b:prev='\v^\s*(class\|def\|async def)>' + +execute "nnoremap ]] :call Python_jump('n', '". b:next_toplevel."', 'W')" +execute "nnoremap [[ :call Python_jump('n', '". b:prev_toplevel."', 'Wb')" +execute "nnoremap ]m :call Python_jump('n', '". b:next."', 'W')" +execute "nnoremap [m :call Python_jump('n', '". b:prev."', 'Wb')" + +execute "onoremap ]] :call Python_jump('o', '". b:next_toplevel."', 'W')" +execute "onoremap [[ :call Python_jump('o', '". b:prev_toplevel."', 'Wb')" +execute "onoremap ]m :call Python_jump('o', '". b:next."', 'W')" +execute "onoremap [m :call Python_jump('o', '". b:prev."', 'Wb')" + +execute "xnoremap ]] :call Python_jump('x', '". b:next_toplevel."', 'W')" +execute "xnoremap [[ :call Python_jump('x', '". b:prev_toplevel."', 'Wb')" +execute "xnoremap ]m :call Python_jump('x', '". b:next."', 'W')" +execute "xnoremap [m :call Python_jump('x', '". b:prev."', 'Wb')" + +if !exists('*Python_jump') + fun! Python_jump(mode, motion, flags) range + if a:mode == 'x' + normal! gv + endif + + normal! 0 + + let cnt = v:count1 + mark ' + while cnt > 0 + call search(a:motion, a:flags) + let cnt = cnt - 1 + endwhile + + normal! ^ + endfun +endif + +if has("browsefilter") && !exists("b:browsefilter") + let b:browsefilter = "Python Files (*.py)\t*.py\n" . + \ "All Files (*.*)\t*.*\n" +endif + +if !exists("g:python_recommended_style") || g:python_recommended_style != 0 + " As suggested by PEP8. + setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8 +endif + +" First time: try finding "pydoc". +if !exists('g:pydoc_executable') + if executable('pydoc') + let g:pydoc_executable = 1 + else + let g:pydoc_executable = 0 + endif +endif +" If "pydoc" was found use it for keywordprg. +if g:pydoc_executable + setlocal keywordprg=pydoc +endif + +let &cpo = s:keepcpo +unlet s:keepcpo + +endif -- cgit v1.2.3