繁体   English   中英

为什么gVim会在某些操作后调整大小并重新定位?

[英]Why does gVim resize and reposition itself after some actions?

几个星期前我开始使用gVim 从早期开始,我注意到当我执行某些操作时,完整的gVim窗口会有一些奇怪的大小调整。 我认为这与我使用Windows Aero Snap(在Windows 7 x64系统上)有关。

重现的步骤(使用空的.vimrc文件,重命名我的vimfiles文件夹):

  1. 我打开gvim
  2. 我把我的gvim窗口放在显示器的左侧(点击几下) win + 左箭头
  3. 我使用:tabe创建一个新选项卡

结果: gVim在屏幕上重新定位自己。 所以我必须使用win + 左箭头重新定位它。 很烦人。

我也可以使用其他制表符和窗口操作,例如:vnewCW o ,...

有人为什么会发生这种情况,以及我能做些什么来解决它? 我已经清空了我的.vimrc文件并临时重命名了我的〜/ vimfiles文件夹以排除任何插件的干扰。

编辑 :关于Matthew的回复,以及关于:help bugs的信息,我发送了一个错误报告(实际上这篇文章)到bugs@vim.org

gvim可以在某些情况下执行此类操作,其中guioptions值会使GUI控件(如滚动条或标签页标签)出现和消失。 尝试命令:set guioptions?

如果显示的值包括“L”或“R”(可选择显示垂直滚动条),则可能是您的罪魁祸首,您可以按照以下说明删除该选项。

如果它包含'e',特别是如果:set showtabline? 显示option = 1,这也可能导致问题,您可以使用以下方法更改任一设置。 (在这种情况下,只有至少有两个选项卡时才会显示选项卡标签行。)

如果它们都不是这些,请尝试发现GUI的哪些部分出现并在问题发生时消失,然后找到控制该行为的选项。

如果问题值为“L”,如何修复的示例:

L是默认设置,(来自帮助)

"egmrLtT"   (MS-Windows),
"aegimrLtT" (GTK, Motif and Athena).

因此,您可以运行以下命令之一来修复它:

:set guioptions-=L  "just remove L
:set guioptions=egmrtT    "explicitly set the options you want, as noted you might want to remove 'e' as well

您可以将其中一个命令添加到.vimrc文件中,以便始终设置它。


您肯定应该升级到以后的版本,自7.3.46以来,该区域肯定至少有一个错误。 也就是说,从7.3.703开始仍然存在问题。

众所周知,“Vim without Cream”安装是可靠的并保持最新状态,并提供没有Cream项目插件的Vim。 未来的读者可能会发现只是通过升级来修复错误。

拉取请求刚刚合并到Vim 8.0.1278中 您现在可以将以下行添加到配置中以缓解此问题:

  • guioptions+=k

这样做是为了避免在添加垂直分割,制表符等时调整窗口大小。这使得窗口大小通常更加一致,但也可以避免触发Vim窗口固定到左/右侧时提到的调整大小问题。

如果您不想使用此新选项,则问题在于Vim如何调整大小。 在Windows构建中,它使用恢复窗口的位置(这与它在最大化模式下固定到右侧/左侧的位置不同),因此每当代码因任何原因尝试调整Vim大小时它将重置位置为恢复的窗口位置。 这里有进一步的讨论: https//github.com/vim/vim/issues/2180

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM