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里面.当其他普通窗口可以支持时,预览窗口不应改变其大小.

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

相关文章

解决方案:解决linux下vim乱码的情况:(修改vimrc的内容)全...
Linuxvi/vim所有的UnixLike系统都会内建vi文书编辑器,其他的...
      vim正则匹配:空行:/^$/  /^[\t]*$/注释...
$select-editorSelectaneditor.Tochangelater,run'sele...
上次手贱忘了保存,这次就简单做个备忘吧,把踩过的坑记一下...
Linux之文本编译器小结vim的优势所有的UNIX-LIKE习通都会内置...