Чи є простий спосіб закрити буфер подрібнення / вікно попереднього перегляду?


65

Один із встановлених мною плагінів (можливо, Supertab) забезпечує прекрасний перегляд документації для виділеного на даний момент елемента в меню завершення:

введіть тут опис зображення

(Мабуть) буфер подряпин залишається відкритим навіть після того, як я закінчу завершення (натисканням Enterабо Space). Потім, щоб кинути це, я роблю <c-w>↑:q, але мені здається, що потрібно натискати Ctrlвкрай дратівливо (одна з причин, чому я уникаю розколи).

Який швидкий спосіб закрити цей буфер подряпин? Чи є рідний спосіб, або мені потрібно написати карту?


2
Що - то , що могло б зробити Ctrlменш дратівливим є перепризначення Caps Lockдо Ctrlабо їх заміну , якщо ви хочете зберегти Caps Lockнаявний.
8bittree

Який плагін ви використовуєте для коду python? Наприклад, jedi-vimє варіант g:jedi#auto_close_doc.
Алекс Кролл

@AlexKroll якщо чесно, я поняття не маю. Я думаю, це може бути Supertab. Це плагіни, які я встановив: github.com/murukeshm/vimrc/tree/master/bundle . У мене не встановлено джедаїв.
муру

2
@muru g:SuperTabClosePreviewOnPopupClose (default 0)Схоже, це те, що ти хочеш:he supertab-closepreviewonpopupclose
Алекс Кролл

@AlexKroll Так, це зробило трюк, дякую!
муру

Відповіді:


66

Верхнє вікно називається вікном попереднього перегляду. Таким чином , будь-який з <c-w>z, <c-w><c-z>або :pc[lose][!]повинен працювати.

Нижче наведено допомогу для :help :pclose

CTRL-W z CTRL-W_z
CTRL-W CTRL-Z CTRL-W_CTRL-Z
: pc: pclose
: pc [програти] [!] Закрити будь-яке відкрите в даний час вікно "Попередній перегляд". Коли 'прихований'
                встановлено варіант, або коли буфер було змінено і [!] є
                Використовується, буфер стає прихованим (якщо немає іншого
                редагування вікна). Команда не працює, якщо будь-який буфер "Попередній перегляд"
                не можна закрити. Дивіться також: закрити.

Ще одна відповідна сторінка допомоги :help preview-window


9
Так :pc! Я не усвідомлював, що назва "попереднього перегляду" є особливим.
muru

29

Для мого конкретного випадку вікно попереднього перегляду було відкрито плагінами. Отже, я використовував конфігурацію плагінів, щоб автоматично закрити ці вікна.

Супертаб

Як запропонував Алекс Кролл:

let g:SuperTabClosePreviewOnPopupClose = 1

YouCompleteMe

let g:ycm_autoclose_preview_window_after_insertion = 1
let g:ycm_autoclose_preview_window_after_completion = 1

Якщо встановлена ​​друга змінна, перша не має ефекту. З документів:

The *g:ycm_autoclose_preview_window_after_completion* option

When this option is set to '1', YCM will auto-close the 'preview' window after
the user accepts the offered completion string. If there is no 'preview' window
triggered because there is no 'preview' string in 'completeopt', this option is
irrelevant. See the |g:ycm_add_preview_to_completeopt| option for more details.

Default: '0'
>
  let g:ycm_autoclose_preview_window_after_completion = 0
<
-------------------------------------------------------------------------------
The *g:ycm_autoclose_preview_window_after_insertion* option

When this option is set to '1', YCM will auto-close the 'preview' window after
the user leaves insert mode. This option is irrelevant if
|g:ycm_autoclose_preview_window_after_completion| is set or if no 'preview'
window is triggered. See the |g:ycm_add_preview_to_completeopt| option for more
details.

Default: '0'
>
  let g:ycm_autoclose_preview_window_after_insertion = 0

4

Ще один приємний варіант, який актуальний і в інших випадках, - це використовувати :onlyдля закриття всіх інших вікон, включаючи попередній перегляд:

:on[ly][!]
:{count}on[ly][!]
CTRL-W o                        *CTRL-W_o* *E445*
CTRL-W CTRL-O                   *CTRL-W_CTRL-O* *:on* *:only*
    Make the current window the only one on the screen. All other
    windows are closed. For {count} see |:quit|.

3

Автором deoplete автор запропонував ще один варіант, який автоматично закриває вікно попереднього перегляду та має працювати з кількома плагінами завершення :

autocmd InsertLeave,CompleteDone * if pumvisible() == 0 | pclose | endif

Мінус у тому, що ви не зможете сфокусувати вікно подряпин, тому не прокручуйте. Але для швидкого пошуку це найзручніше.


0

Джедаї

якщо не використовується з YCM

let g:jedi#auto_close_doc = 0  " close preview window after completion

0

Ви можете використовувати цей плагін: bufutils.vim

Він закриває буфери подряпин, список місцезнаходження, список помилок тощо ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.