微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

vim – Quickfix&Preview窗口调整大小

通常,当quickfix窗口打开时,它会更改屏幕布局,但Vim会恢复
当那个窗口关闭

但是有一种情况是布局恢复失败:什么时候
预览窗口打开,垂直分割呈现并执行:wincmd J
在quickfix中(或者使用:botright copen打开).在这种情况下的大小
预览窗口已更改.

我带来了一个解决方案,我放在〜/ .vim / ftplugin / qf.vim上,

" Only do this when not done yet for this buffer
  if exists("b:did_ftplugin")
     finish
  endif

  " expand quickfix when there are vertical splits
  wincmd J

  func! RestorePreviewWindow()
     let l:quickfixHeight = winheight(0)
     wincmd p " include prevIoUs window on jump list
     silent! wincmd P  " jump to preview window
     if &previewwindow " if we really get there...
        exe "resize " . (&previewheight - l:quickfixHeight - 1)
        wincmd p " back to old window
     endif
  endfunc
  augroup quickfixClosing
     au!
     au BufDelete <buffer> call RestorePreviewWindow()
  augroup END

,但我想知道是否有更好/更简单的解决方
问题.

解决方法

如果你可以用普通的Vim(vim -N -u NONE)重现问题,我会把它报告给 vim_dev mailing list,把它固定在Vim里面.当其他普通窗口可以支持时,预览窗口不应改变其大小.

如果这只是您设置的一个特点,我认为您实施的解决方案很好;我可能会沿着同样的路线解决它.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐