Jak automatycznie usunąć okno podglądu po autouzupełnianiu w Vimie?
Używam omnifunc=pythoncomplete
. os.<something>
), otrzymuję listę kwalifikujących się członków klasy i funkcji, zgodnie z oczekiwaniami, a także okno podglądu bufora magazynowania z dokumentacją wybranego członka lub funkcji. Jest to świetne, ale po wybraniu funkcji, którą chcę, okno podglądu pozostaje.
Mogę się go pozbyć za pomocą :pc
, ale chciałbym, aby automatycznie zniknął po wybraniu mojej funkcji, a la Eclipse. Bawiłem się z completeopt
ale do nic z tego.
7 answers
Umieść w swoim 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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-24 04:00:25
Mimo, że istnieje już akceptowana odpowiedź znalazłem to bezpośrednio z dokumentów, które będą działać dla każdej wtyczki, która ma ten problem.
autocmd CompleteDone * pclose
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-24 17:28:32
Jeśli masz zainstalowaną wtyczkę supertab, istnieje opcja o nazwie supertab-closepreviewonpopupclose
.
Umieść następujące w swoim .vimrc:
let g:SuperTabClosePreviewOnPopupClose = 1
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-29 17:01:54
Nie wiem jak zamknąć go automatycznie, ale można wpisać
: pclose
Aby ręcznie zamknąć podgląd zarysowania.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-03 06:01:41
Wiem, że to pytanie jest bardzo stare, ale po kilku dniach szukania "czystego" rozwiązania właśnie znalazłem CompleteDone autofunction, który wykonuje zadanie:
au CompleteDone * pclose
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-28 10:05:34
Możesz dorzucić następujące mapowania, aby niektóre klawisze próbowały zamknąć okno podglądu.
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>
Możesz również użyć poleceń autocomands, aby zamknąć okno podglądu po zakończeniu trybu wstawiania:
augroup GoAwayPreviewWindow
autocmd! InsertLeave * wincmd z
augroup end
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-24 02:28:53
Możesz wpisać w .vimrc
:
set completeopt-=preview
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-28 07:10:37