スクラッチバッファ/プレビューウィンドウを簡単に閉じる方法はありますか?


65

私がインストールしたプラグインの1つ(おそらくSupertab)は、完了メニューで現在強調表示されているアイテムのドキュメントの素晴らしいビューを提供します。

ここに画像の説明を入力してください

(明らかに)スクラッチバッファーは、(Enterまたはを押してSpace)終了した後でも開いたままです。次に、それをやめるために、私はそうします<c-w>↑:qが、私はCtrl非常に面倒なことをしなければならないことがわかります(私がスプリットを避ける理由の1つ)。

このスクラッチバッファを閉じる簡単な方法は何ですか?ネイティブな方法はありますか、それともマッピングを作成する必要がありますか?


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。Jediがインストールされていません。
ムル

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 [lose] [!]現在開いている「プレビュー」ウィンドウを閉じます。「隠された」とき
                オプションが設定されているか、バッファが変更され、[!]が
                使用すると、バッファは非表示になります(別のバッファがない限り)
                ウィンドウの編集)。「プレビュー」バッファがある場合、コマンドは失敗します
                閉じられません。:closeも参照してください。

別の関連するヘルプページは :help preview-window


9
イェーイ:pc!「プレビュー」の名前が特別であることを知りませんでした。
ムル

29

私の場合、プラグインによってプレビューウィンドウが開かれました。そこで、プラグイン構成を使用してこれらのウィンドウを自動的に閉じました。

スーパータブ

アレックス・クロールが示唆したように:

let g:SuperTabClosePreviewOnPopupClose = 1

YouCompleteMe

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

2番目の変数が設定されている場合、最初の変数は効果がありません。ドキュメントから:

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

スクラッチバッファ、ロケーションリスト、エラーリストなどを閉じます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.