Vim и python: независящее от контекста автозаполнение языковых методов - PullRequest
1 голос
/ 22 января 2011

Я пишу небольшой скрипт на python для изучения основ VIM (я новичок в VIM). Я настроил VIM для работы с omnicompletion, и это делает. Например, если я напишу ул. затем нажмите ctr + x, ctr + o, он предложит мне все строковые методы. Однако в моем коде у меня есть что-то вроде этого:

for line in inFile.readlines():
    something = line.rpartition(" ")[0]

Я бы хотел, чтобы VIM автоматически заполнял имя метода rpartition после ввода line.rpart. Я не ожидаю, что он будет знать тип линейного объекта, но я бы хотел, чтобы VIM предложил список незавершенных контекстов, основанный на знакомстве с библиотеками Python. Например, если с затмением я пытаюсь завершить

anObject.rpart

он предлагает метод rpartition, даже если он не имеет ничего общего с anObject!

Возможно ли заставить это работать с VIM?
Благодаря.

Мой файл .vimrc:

set showcmd
set textwidth=80
set expandtab
set smarttab
set tabstop=4
set shiftwidth=4
set softtabstop=4
set number
set autoindent
filetype indent on
filetype plugin on
autocmd BufRead,BufNewFile *.py syntax on
autocmd BufRead,BufNewFile *.py set ai
autocmd BufRead *.py set smartindent cinwords=if,elif,else,for,while,with,try,except,finally,def,class
set modeline
syntax on
" Closes the Omni-Completion tip window when a selection is
" made
autocmd CursorMovedI * if pumvisible() == 0|pclose|endif
autocmd InsertLeave * if pumvisible() == 0|pclose|endif

Ответы [ 2 ]

2 голосов
/ 10 января 2013

Серьезно, используйте Джедай !

Это действительно намного лучше, чем все остальные автозаполнения.

Да пребудет с тобой сила!

1 голос
/ 23 января 2011

Вам определенно стоит взглянуть на PySmell , который можно легко установить для Vim.Он генерирует меню завершения на основе статического анализа для данного проекта.Он также может генерировать предложения по завершению на основе тегов, которые он создает для внешних библиотек, таких как Python Standard Library или Django Lib.

Я был доволен Vims Python omnicimpletion, но так как я переключился на PySmell, я никогда не оглядывался назад.

...