улучшаем pythoncomplete
Я уже отправлял разработчику pythoncomplete патчи, он ничего не ответил. Через год вышла версия, где те пробремы были решены(правда, более правильным путем).
Вот ещё пара доработок, которые я использую у себя. Хотелось бы, чтобы builtins тоже автодополнялись, а те только определенное в открытом модуле:
self.compldict = {}
Заменяем на:
self.compldict = __builtins__.__dict__
В случае, если название класса мы дополняем в списке родительских классов, скобку дописывать не надо:
c['word'] += '('
c['abbr'] += '('
заменяем на:
if not vim.current.line.lstrip().startswith('class '):
c['word'] += '('
c['abbr'] += '('
Или вообще закомментировать это место..
Скачать исправленный pythoncomplete.
В .vimrc:
function! TabWrapper()
if strpart(getline('.'), 0, col('.')-1) =~ '^\s*$'
let g:skiptw = 1
return "\<Tab>"
elseif exists('&omnifunc') && &omnifunc != ''
"return "\<C-X>\<C-N>"
let g:skiptw = 0
return "\<C-X>\<C-o>\<C-p>"
else
let g:skiptw = 1
return "\<C-N>"
endif
endfunction
function! TabWrapper2()
if g:skiptw == 1 || strpart(getline('.'), 0, col('.')-1) =~ '($'
return ""
else
if g:pythoncomplete_completions == []
if strpart(getline('.'), 0, col('.')-1) =~ '\.$'
return ""
else
return "\<C-x>\<C-n>"
endif
else
return "\<C-X>\<C-o>\<C-p>"
endif
endif
endfunction
imap <Tab> <C-R>=TabWrapper()<CR>
autocmd BufNewFile,BufRead *.py imap <Tab> <C-R>=TabWrapper()<CR><C-R>=TabWrapper2()<CR>
Таким образом мы сначала автодополняем с помощью pythoncomplete, а если дополнить не удалось используем автодополнение по словарю
UPD: получил ответ от автора pythoncomplete, он включит это в следующую версию. Ещё кое-чего приняли в django-project для vim`а.






Comments
Хотелось бы, чтобы он искал по всем путям из sys.path. Например, добавили в пути какой-либо каталог с модулями… Не знаете как это можно сделать?
gjnduv <a href=”http://cheapviagratab.com/ “>viagra</a> 6640 <a href=”http://viagraaga.com/ “>viagra</a> aoPMtU <a href=”http://buycialistab.com/ “>cheap cialis</a> oZyvR <a href=”http://buyviagratab.net/ “>cheap viagra</a> 1031 <a href=”http://cialisaga.com/ “>cialis</a> %-[[[ <a href=”http://cheapcialistab.com/ “>cialis</a> lyzbEa