如何使gvim在Windows中最大化启动?


15

我想让我的编辑给我尽可能多的屏幕空间,因为这增加了我一次查看大多数代码的能力。

问题是,gvim似乎给了我一个80x25的窗口,或者让我记住了上一个非最大化的大小,具体取决于我如何调用它。

因此,无论记忆状态如何,我如何强制其尽可能大?


实际上,我会建议使用github.com/xolox/vim-shell插件,该插件在win32和win64上均适用于gvim,同时使用<F11>在全屏/正常模式之间切换
van abel

Answers:


21

您可以将这一行:

autocmd GUIEnter * simalt ~x

gvimrc文件末尾。

此方法使用该autocmd功能编织魔术。该命令autocmd GUIEnter *为文件模式*(任何文件)成功启动GUI后指定要运行的命令。

它将执行的命令simalt ~xvim仅在Windows的变体中)将模拟击键Alt Spacebarx,这是将窗口最大化的击键。

您也可以使用缩短的版本:

au GUIEnter * sim ~x

但是我本人更喜欢完全扩展的命令,特别是因为它是您设置并忘记的事情,因此在安装到Windows系统上时只输入一次即可vim


请记住,这是为了模拟击键以达到目的。在英文版本上,由于Alt-SpaceX可以最大化窗口,因此效果很好。

如果这对您不起作用,则应在所使用的任何语言环境中调查击键。例如,法语版本将使用Agrandir(放大)和n作为控制击键,因此您需要的命令是:

autocmd GUIEnter * simalt ~n

(这实际上会最小化您的英语窗口)。

如果您使用的是其他(非英语,非法语)变体,只需按Alt-Space一个窗口以调出系统菜单,然后找出应该使用的键(带下划线)。


找到你的gvimrc文件添加任何命令你需要,你可以输入:

:version
:echo $VIM
:echo $HOME

并且您应该获得启动文件和变量的列表,例如:

system gvimrc file = "$VIM/gvimrc"
  user gvimrc file = "$HOME/_gvimrc"

C:\Program Files (x86)\Vim
C:\Users\Pax\Documents

您的缩短版本的autocmd缺少*
jamessan

这种方法对我不起作用:不是最大化窗口,而是打开一个弹出菜单,允许您恢复,移动,最小化,最大化(...)窗口。我正在使用Windows 7 SP1和gvim 7.4.711。我该如何运作?
statox

@statox,这就是如果您从头开始舍弃了,则会看到的内容x。确保您具有全文au GUIEnter * sim ~x

@paxdiablo我不确定我是否将完整的行(长版和短版)从复制au~x。是否有我缺少的空白字符或类似的东西?
statox

@statox,当您打开gvim窗口并单击系统按钮(文件菜单上方最左上角的vim图标)时,您看到最大化吗?打开该系统菜单后,按x时它会最大化吗?

7

除了最大化窗口,为什么不通过自动启动全屏模式获得更多的空间来进行完整的vim多窗口编辑体验?;-)

最终结果的全屏屏幕截图(=所有视频像素容量): 视频全屏截图

我认为这比Windows最大化要好:完整的全屏(就像我以前在远程unix终端上编辑时使用ALT-Enter的puTTY一样)。

我解释了如何:

步骤1

安装出色的精美实用程序,以允许在Windows的gvim中全屏使用:

https://github.com/derekmcloughlin/gvimfullscreen_win32/tree/master

您必须下载DLL文件gvimfullscreen.dll,并将其放在gvim.exe所在的目录下(gVim 7.4版为$ VIM / vim74)。要下载DLL(不使用git):

https://github.com/derekmcloughlin/gvimfullscreen_win32/raw/master/gvimfullscreen.dll

第2步

编辑.vimrc文件(在vim:中:e $HOME/.vimrc),插入以下命令以自动启动全屏,并允许F11功能键在以下3种状态之间切换模式:全屏,最大化窗口,原始/默认窗口大小:

"run the command immediately when starting vim
autocmd VimEnter * call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0)

" activate/deactivate full screen with function key <F11>  
map <F11> <Esc>:call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0)<CR>

第三步

编辑.gvimrc文件(在vim:内:split $HOME/.gvimrc),插入以下命令以避免菜单栏和无用的东西:

set guioptions-=m  "remove menu bar
set guioptions-=T  "remove toolbar
set guioptions-=r  "remove right-hand scroll bar
set guioptions-=L  "remove left-hand scroll bar

是否有gvimwin64fullscreen?还是可以使用github上的项目进行编译?
范·亚伯


2

来自:help 'lines'

Vim窗口的行数。
[...]
当Vim在GUI或可调整大小的窗口中运行时,设置此选项将导致窗口大小被更改。
[..]
您可以使用此命令来获取最高的窗口:
:set lines=999

columns除了宽度(以字符为单位)外,该选项的作用相同。

因此,您可以例如将其放在vimrc文件中:

set lines=55
set columns=120

这是不是一样被最大化(即使你使用999上面所描述的值),因为“被最大化”是在窗口上一个特殊的标志放,并巧妙地改变某些操作(如移动),但它应该解决您的问题默认情况下具有80x25的小窗口尺寸。


这虽然还算不错,但它为234x56我的系统提供了一个窗口,而最大化使了236x57。尽管如此,以这样的大小缩短两列和一行不是什么大问题,尤其是对于某些在非Windows平台上也可以使用的东西,尽管我尚未进行实际测试。今晚当我回到心爱的Debian盒子时,我会看看:-)

对于我的Debian,默认窗口为200x50,将vimrc文件或任何行和列的行和列都设置为999 ,gvim -c 'set them'使我为236x61,最大化为237x61,因此比Windows下更近。有趣的是,gvim -geometry 999x999以略大的尺寸为我提供了最大化的窗口,因此对于非Windows可能会更好,尽管我怀疑确保所有调用方法都使用该窗口会更加困难。可惜的是,对于非Win平台,没有simalt类型的东西。

尽管如此,还是值得的代表,因为它足够接近,并且比仅赢方法更可移植。顺便说一句,使用9999x9999作为几何图形非常困难,vim因为它不喜欢尺寸超过64K像素的窗口(在这种情况下,几何图形是字符单元而不是像素)。999x999似乎可以正常工作。不确定在多显示器系统中如何处理。

是的,这种方法不是完美的,但是就像您提到的那样,它是跨平台的,并且它也可能更快(启动时运行命令行工具可能会在Windows Vim上造成一定程度的延迟,至少是这种情况)当我几年前使用它时)。
马丁·图尔诺伊

将列/线设置为可以160 x 42得到接近黄金分割率的窗口形状,您将获得令人敬畏的42
roblogic

0

除了其他答案中特定于gVim的命令外,还有几个标准的Windows功能可以启动任何最大化的应用程序。

如果从快捷方式(例如从“开始”菜单或桌面)凝视gVim,则可以更改快捷方式属性以最大化Vim。右键单击快捷方式,选择“属性”,然后从“运行”下拉列表中选择“最大化”。但是,这只会影响该快捷方式,因此,如果gVim是从另一个快捷方式,“运行”对话框或命令行启动的,它仍会在一个小窗口中打开。

如果要从命令行或批处理文件启动gVim,则可以使用CMD的start命令:start "" /max "C:\Program Files (x86)\Vim\vim73\gvim.exe"。(""如果引用gvim.exe的路径是必需的。如果使用不带空格的无引号的路径,则可以忽略它:start /max C:\Progra~2\Vim\vim73\gvim.exe。)


我不知道默认start命令是什么,但是我改写了我的PATH,现在有mingsys了start,所以请注意,您运行的是正确的命令
TankorSmash

我尝试了此操作(“从快捷方式...选择最大化”)。窗口闪烁,然后显示的大小与从DOS cmd shell启动时的大小相同。公平地说,我在.vimrc中有明确设置大小(行/列)的命令,因此我怀疑后者覆盖了最大化的尝试。
rich p

某些Linux窗口管理器还具有这种功能。例如,我希望Vim窗口全高,但是我的两个监视器的高度是1024px,而中间的监视器的高度是1080px。使用KDE的“窗口规则”控制面板将Vim设置为垂直最大化,以确保gVim在从一个监视器移动到另一个监视器时将调整大小以匹配。(它还具有覆盖lines设置的附加好处,因此我可以将其留给gvimrc我没有进行此类调整的系统的备用。)
ssokolow
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.