улучшаем 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`а.

Add post to:   Delicious Reddit Slashdot Digg Technorati Google
Make comment

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

Required. 30 chars of fewer.

Required.

captcha image Please, enter symbols, which you see on the image