我已安装的其中一个插件(可能是Supertab)为完成菜单中当前突出显示的项目提供了很好的文档视图:退出完成后(按Enter或Space),仍然保持打开状态。然后,要退出它,我执行<c-w>↑:q,但是我发现必须非常讨厌地按Ctrl键(避免拆分的一个原因)。

关闭此暂存缓冲区的快速方法是什么?有本机的方法,还是我必须编写映射?

评论

可能会使Ctrl减少烦人的事情是将Caps Lock重新映射为Ctrl,或者如果要保持Caps Lock可用则将其交换。

您用于python代码的哪个插件完整?例如jedi-vim具有选项g:jedi#auto_close_doc。

@AlexKroll,老实说,我不知道。我认为可能是Supertab。这些是我安装的插件:github.com/murukeshm/vimrc/tree/master/bundle。我没有安装Jedi。

@muru g:SuperTabClos​​ePreviewOnPopupClose(默认值为0)看起来像您想要的一样:he supertab-closepreviewonpopupclose

@AlexKroll是的,成功了,谢谢!

#1 楼

顶部窗口称为预览窗口。因此,<c-w>z<c-w><c-z>:pc[lose][!]中的任何一个都可以正常工作。

评论


是的:pc!我没有意识到“预览”这个名称很特别。

–muru
15年7月29日在3:07

#2 楼

对于我的特定情况,预览窗口由插件打开。因此,我使用了插件配置来自动关闭这些窗口。

Supertab

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


如果设置了第二个变量,则第一个无效。来自文档:

 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
 


#3 楼

另一个不错的选择(在其他情况下也相关)是使用: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|.


#4 楼

deoplete的作者在一个问题中建议了另一个自动关闭预览窗口并应与多个完成插件一起使用的选项:能够聚焦暂存窗口,因此无需滚动。但是快速查找是最方便的。

#5 楼

绝地
如果不与YCM一起使用
let g:jedi#auto_close_doc = 0  " close preview window after completion


#6 楼

您可以使用此插件:bufutils.vim

它关闭暂存缓冲区,位置列表,错误列表等...