Я использую omnifunc=pythoncomplete
. При автоматическом заполнении слова (например, os.<something>
), я получаю список имеющих право участников класса и функций, как ожидалось, а также буферного окна предварительного просмотра царапины с документацией о выбранном участнике или функции. Здорово, но после выбора функции я хочу, окно предварительного просмотра остается.
Я могу избавиться от него с :pc
, но я хотел бы его только для автоматического исчезновения после того, как я выбрал свою функцию, а-ля Eclipse. Я играл вокруг с completeopt
но напрасно.
Поместите следующее в ваш vimrc:
" If you prefer the Omni-Completion tip window to close when a selection is
" made, these lines close it on movement in insert mode or when leaving
" insert mode
autocmd CursorMovedI * if pumvisible() == 0|pclose|endif
autocmd InsertLeave * if pumvisible() == 0|pclose|endif
Вы можете использовать следующие маппинги, чтобы определенные клавиши пытались закрыть окно предварительного просмотра.
inoremap <space> <C-O>:wincmd z<CR><space>
inoremap ( <C-O>:wincmd z<CR>(
inoremap ) <C-O>:wincmd z<CR>)
inoremap , <C-O>:wincmd z<CR>,
inoremap <CR> <C-O>:wincmd z<CR><CR>
inoremap <esc> <esc>:wincmd z<CR>
Вы также можете использовать автокоманды, чтобы закрыть окно предварительного просмотра, когда вы закончили в режиме вставки:
augroup GoAwayPreviewWindow
autocmd! InsertLeave * wincmd z
augroup end