[vim] Vim에서 자동 완성 후 미리보기 창을 어떻게 자동으로 제거합니까?

나는 omnifunc=pythoncomplete. 단어 (예 :)를 자동 완성 할 때 os.<something>예상대로 적합한 클래스 멤버 및 함수 목록과 선택한 멤버 또는 함수에 대한 문서가있는 스크래치 버퍼 미리보기 창을 얻습니다. 이것은 훌륭하지만 원하는 기능을 선택하면 미리보기 창이 남아 있습니다.

을 사용하여 제거 할 수 :pc있지만 이클립스라는 함수를 선택한 후 자동으로 사라지기를 원합니다. 나는 놀았 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


답변

이미 받아 들여진 답변이 있지만이 문제가있는 모든 플러그인에서 작동하는 문서에서 직접 찾았습니다.

autocmd CompleteDone * pclose


답변

슈퍼 탭 플러그인이 설치되어있는 경우라는 옵션이 supertab-closepreviewonpopupclose있습니다.

.vimrc에 다음을 입력하십시오.

let g:SuperTabClosePreviewOnPopupClose = 1


답변

자동으로 닫는 방법을 모르겠지만 입력 할 수 있습니다.

: pclose

스크래치 미리보기를 수동으로 닫습니다.


답변

다음 매핑을 던져 특정 키가 미리보기 창을 닫도록 할 수 있습니다.

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


답변

이 질문이 매우 오래되었다는 것을 알고 있지만 “깨끗한”솔루션을 찾고 며칠 후에 작업을 수행하는 CompleteDone 자동 기능을 찾았습니다.

au CompleteDone * pclose


답변

다음에서 입력 할 수 있습니다 .vimrc.

set completeopt-=preview