Có cách nào dễ dàng để đóng cửa sổ đệm / xem trước không?


65

Một trong những plugin tôi đã cài đặt (có lẽ là Supertab) cung cấp một cái nhìn tốt đẹp về tài liệu cho mục hiện được tô sáng trong menu hoàn thành:

nhập mô tả hình ảnh ở đây

Bộ đệm đầu (rõ ràng) vẫn mở ngay cả sau khi tôi thoát hoàn thành (bằng cách nhấn Enterhoặc Space). Sau đó, để thoát khỏi nó, tôi làm <c-w>↑:q, nhưng tôi thấy phải nhấn Ctrlcực kỳ khó chịu (một lý do tại sao tôi tránh chia tách).

Cách nhanh chóng để đóng bộ đệm đầu này là gì? Có một cách bản địa, hoặc tôi phải viết một bản đồ?


2
Cái gì mà có thể làm cho Ctrlít gây phiền nhiễu được Remapping Caps Lockđể Ctrlhay hoán đổi chúng nếu bạn muốn giữ lại Caps Locksẵn.
8bittree

Những plugin bạn sử dụng cho mã python hoàn thành? Ví dụ jedi-vimcó tùy chọn g:jedi#auto_close_doc.
Alex Kroll

@AlexKroll thành thật mà nói, tôi không có ý kiến ​​gì. Tôi nghĩ rằng nó có thể là Supertab. Đây là những plugin tôi đã cài đặt: github.com/murukeshm/vimrc/tree/master/bundle . Tôi không cài đặt Jedi.
muru

2
@muru g:SuperTabClosePreviewOnPopupClose (default 0)Trông giống như những gì bạn muốn:he supertab-closepreviewonpopupclose
Alex Kroll

@AlexKroll Vâng, đó là một mẹo nhỏ, cảm ơn!
muru

Câu trả lời:


66

Cửa sổ trên cùng được gọi là cửa sổ xem trước. Vì vậy, bất kỳ <c-w>z, <c-w><c-z>hoặc :pc[lose][!]nên làm việc.

Dưới đây là sự giúp đỡ cho :help :pclose

CTRL-W z CTRL-W_z
CTRL-W CTRL-Z CTRL-W_CTRL-Z
: pc:
: pc [thua] [!] Đóng bất kỳ cửa sổ "Xem trước" nào đang mở. Khi 'ẩn'
                tùy chọn được đặt hoặc khi bộ đệm được thay đổi và [!] là
                được sử dụng, bộ đệm bị ẩn (trừ khi có cái khác
                cửa sổ chỉnh sửa nó). Lệnh không thành công nếu có bất kỳ bộ đệm "Xem trước"
                không thể đóng cửa Xem thêm: gần gũi.

Một trang trợ giúp liên quan khác sẽ là :help preview-window


9
Yay cho :pc! Tôi đã không nhận ra rằng tên "xem trước" là đặc biệt.
muru

29

Đối với trường hợp cụ thể của tôi, cửa sổ xem trước đã được mở bởi các plugin. Vì vậy, tôi đã sử dụng cấu hình plugin để tự động đóng các cửa sổ này.

Supertab

Theo đề xuất của Alex Kroll:

let g:SuperTabClosePreviewOnPopupClose = 1

YouCompleteMe

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

Nếu biến thứ hai được đặt, biến thứ nhất không có hiệu lực. Từ các tài liệu:

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

một tùy chọn đẹp khác, cũng có liên quan trong các trường hợp khác, đang sử dụng :onlyđể đóng tất cả các cửa sổ khác, bao gồm cả phần xem trước:

: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

Một tùy chọn khác tự động đóng cửa sổ xem trước và hoạt động với nhiều plugin hoàn thành đã được đề xuất bởi tác giả của deoplete trong một vấn đề :

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

Nhược điểm là bạn sẽ không thể tập trung vào cửa sổ đầu, do đó không cuộn. Nhưng để tra cứu nhanh thì thuận tiện nhất.


0

Jedi

nếu không sử dụng với YCM

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

0

Bạn có thể sử dụng plugin này: bufutils.vim

Nó đóng bộ đệm đầu, danh sách vị trí, danh sách lỗi, v.v ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.