如何启动gVim最大化?


38

打开gVim时如何自动最大化它的窗口?还有一个跨平台的解决方案,我正在尝试在Linux和Windows计算机上使用相同的配置...

我已经尝试过hack了:set lines=999 columns=999,它几乎可以用,但是窗口没有最大化,只是调整了大小,我丢失了一些行/列。


3
这是我所知道的最可移植的方式。您能否详细说明“但是窗口没有最大化,只是调整了大小,我丢失了一些行/列”。最大化是不合理的,调整大小直到边缘。而且我不认为我曾经以这种方式输掉过一场比赛。
Rook

@Idigas:正确,最大化只是“调整大小,直到填满可用空间(不覆盖工具栏等)”,以wm-speak表示:)
akira 2010年

将hack设置在上方不会调整大小。我开始认为更好的方法是在vimrc中添加if:如果是Windows,则调用配置,否则,调用其他配置。
有人仍在使用您的MS-DOS 2010年

Answers:


30

Vim Wiki

au GUIEnter * simalt ~x

可以在Windows上使用;我不确定在Gnome / KDE上需要什么组合键。


在Windows 7 Ultimate上,这对我不起作用。
马特·亚历山大

2
可悲的是,它也依赖于OS语言。对于法语Windows版本,它变为au GUIEnter * simalt ~n
ereOn 2011年

有没有办法反其道而行之,最大化?似乎:simalt ~x只能在Windows7x64 ENG上以一种方式工作。
TankorSmash 2012年

1
~x来自菜单选项的键盘快捷键。检查所需选项的快捷方式,然后尝试。也许是Restore?
Grzegorz Gierlik

@GrzegorzGierlik谢谢,您是对的。我没有意识到这simalt意味着“模拟alt按键”。谢谢。
TankorSmash 2012年

10

如果您担心跨平台的兼容性,最好的方法是set lines=999 columns=999。我在Vim的Wiki中找到了它,尽管它并不完美,但是如果您需要在不同的操作系统上工作,它是最佳的解决方案。


您可以将其与au GUIEnter结合使用吗?simalt〜x?
snitzr 2010年

是的,在vimrc中创建一个条件以了解它是Windows还是Linux。由于我主要使用Linux,因此我将在以后添加此配置。
有人仍在使用您MS-DOS 2010年

在GNOME 3下,这种方法对我不起作用。当窗口未最大化时,这会使Vim放慢一会儿时间(当我使用窗口管理器最大化时不会发生),并且会在上面留下一点边缘窗口被发现,因为我的屏幕高度不是行高的完美倍数。通过将窗口拖动到屏幕的左侧或右侧来最大化垂直(而不是水平)窗口时,这将无效。
2012年

@AndresRiofrio对于这些情况(Linux中的多个桌面环境),我正在认真考虑使用devilspie。我知道这是一个第三方解决方案,但可能会起作用。我在其他一些我想最大化开放的应用程序中使用了它。
有人仍在使用您MS-DOS

如果您未最大化窗口,这也会导致窗口变大。
凯文·考克斯

6

绝招:

au GUIEnter * simalt ~x

取决于Windows语言。

对于我的波兰语版本有效:

au GUIEnter * simalt〜s

哪里s来的Mak_s_ymalizuj

因此,如果~x不起作用ALT+SPACE,请按打开“窗口”菜单,然后检查Ma_x_imize“窗口”菜单选项的快捷方式。


1
〜n代表法语(“ Agra&ndir”)
SébastienRoccaSerra 2013年

1
挪威文的
〜m

4

您可以使用maximum.dll插件在Vim上进行全屏浏览(如果使用Windows)。只需将maximum.dll复制到vimdirectory/plugin文件夹中即可。



3

在GNU / Linux上

在GNU / Linux上,最简单的方法是gvim使用-geometry选项进行调用。例如:

gvim -geometry 1336x744

如果您想在不同的机器上重用相同的启动命令,这将不方便。

这是我现在在多台计算机上使用的所有问题。只需将其添加到您的收藏夹中较高的位置即可.vimrc

if has("gui_running")
  " GUI is running or is about to start.
  " Maximize gvim window (for an alternative on Windows, see simalt below).
  set lines=999 columns=999
else
  " This is console Vim.
  if exists("+lines")
    set lines=50
  endif
  if exists("+columns")
    set columns=100
  endif
endif

资料来源:http : //vim.wikia.com/wiki/Maximize_or_set_initial_window_size


对于linux,这可能是最好的选择。在.zshrc中执行别名v =“ gvim -geometry 1366x768”,您的设置就很好了。
Tanel Tammik '16年

@TanelTammik再看看我的答案。我对其进行了实质性的编辑,以显示我现在正在使用的更好的解决方案。感谢您的投票。
Serge Stroobandt,2013年

2

更新:对于linux用户,我发现了一个更好的解决方案,它确实确实最大化了窗口:https : //stackoverflow.com/questions/12448179/how-to-maximize-vims-windows-on-startup-with-vimrc

唯一的依赖项是wmctrl,但值得安装。

所以,我的窗户用maximize.dll插件(如已被@fatihturan提到的),并为Linux我使用wmctrl。大!

(但我真的不明白为什么gvim在2014年没有现成的功能)


旧答案:


对我而言,普通的hack :set lines=999 columns=999在带有两个监视器的Linux Mint MATE上表现不佳。我通常在辅助监视器上打开gvim,没有任务栏,因此,Vim应该占据整个屏幕。但是,如果我这样做了:set lines=999 columns=999,gvim会将这些值缩小到监视器的大小,因此,在gvim窗口下方有一个小区域未被使用。如果我设置实际的行数/列数,那就更好了:只需“手动”最大化窗口并键入:set lines?:set columns?,以获取所需的值。由于我使用两个监视器,因此我还需要指定窗口位置,因此,键入:winpos以获取当前窗口位置。

其次,最好不仅将这些设置放到.vimrc,而且在加载gui时执行它们。

因此,最终配方:

1)用手最大化您的GVIM并键入三个命令来获得实际值::winpos:set lines?:set columns?

2)添加到.vimrc

function Maximize()

   " put your actual values below
   winpos 0 0
   set lines=78
   set columns=237

endfunction

autocmd GUIEnter * call Maximize()

有趣。也许您可以在vimscript中获得行和列的值,所以此配置将在所有设备上运行。
有人仍在使用您的MS-DOS

1

Ubuntu(16.04)

最好让窗口管理器执行此任务,至少在Ubuntu中,它将全屏显示gvim而不是最大化窗口,从而为您提供更多空间。当然,此解决方案取决于平台,而不是跨平台的,但是对于Ubuntu而言,它是一个更好的选择。您甚至可以设置gvim为在特定视口上打开。

Compiz Config设置管理器->放置Windows->固定窗口放置->具有固定放置模式的Windows->新建

 Windows class=Gvim
 Mode    Maximize

如果您没有Compiz Config设置管理器:

sudo apt install compizconfig-settings-manager

1

如果您想让vim完全在Windows中实现全屏(如图所示),gvimfullscreen_win32则强烈建议使用该插件。

该插件可以更轻松地访问全屏模式和无干扰的环境。您也可以添加:set go=以获取更多空间。这是屏幕截图(在Windows 8.1上为Gvim7.4):

在此处输入图片说明


0

我相信您可以在$HOME/.vimrc实现目标的过程中做到这一点:

if has("gui_running")
     set fuoptions=maxvert,maxhorz
     au GUIEnter * set fullscreen
 endif

您可以像下面这样确认全屏的应用位置:

:verbose set nofullscreen?
 fullscreen
       Last set from ~/.vim_runtime/my_configs.vim

看起来这仅适用于MacVim。
Michael Yoo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.