[VIM] 让 GVim 在 Windows 上支持全屏

陪她去流浪 桃子 2016年06月26日 编辑 阅读次数:7124

Vim 在 Windows 上的图形化版本叫作 GVim。虽然是图形化版本,但是,所有需求显示的内容(除菜单和工具栏以外)还是是基于字符界面的。 在终端中使用 Vim 的时候,要想全屏,得借助终端才行,它自己是不支持全屏的。然而, GVim 从终端中独立了出来,不支持全屏,就显得有些尴尬了。

以下是一张截图,是 GVim 安装后默认的风格,待后面作个对比。

反正,给我的第感觉就是特别粗糙,菜单与工具栏,滚动条几乎没太多用处。我之所以这样说,是因为我经常全屏写代码。 全屏写代码的一些好处:颜色统一、受更少的干扰(QQ闪烁、弹窗广告、邮件提醒等)、有更多的写作(写代码算写作吗?)空间、逼格高 :-)。

这张图就是全屏后的 GVim。

甚至可以边看 MV、边玩游戏 边 coding。。。这逼格就高了,哈哈,开个玩笑,编码要认真,集中精力:

显得特别干净,统一,看起来有点像是在终端下面写代码。全屏、没有边框、没有菜单、没有工具栏、没有滚动条,颜色还算柔和。 但由于 VIM 中的所有内容都是字符构成的,有着固定的宽度与高度,所以屏幕最下方和最右方有一些黑边(我修改的),黑边与屏幕原本的颜色相同,所以在实际的屏幕上看不出(不会注意到)图片中的这种差异。

要达到全屏,主要借助我之前写的一个外部动态库,代码在 https://github.com/movsb/gvim_fullscreen.git

它能干什么

  • 支持一键切换 GVim 的窗口化与全屏 模式;
  • 支持一键改变窗口整体的透明度;

怎么用

把目标文件 gvim_fullscreen.dll 放到 gvim.exe 所在的目录,然后把下面几行内容放到配置文件 _vimrc 中。

1
2
3
4
" 按 F11 切换全屏
noremap <f11> <esc>:call libcallnr('gvim_fullscreen.dll', 'ToggleFullscreen', 0)<cr>
" 按 F12 切换窗口透明度
noremap <f12> <esc>:call libcallnr('gvim_fullscreen.dll', 'ToggleTransparency', "247,180")<cr>

更好的外观

功能达到了,但比较难看,因为有菜单、工具栏、滚动条,并且它们的颜色都不一致,所以干掉它们:

1
2
3
4
set guioptions-=T
set guioptions-=r
set guioptions-=L
set guioptions-=m

如何编译

打开 Visual Studio Command Prompt,切换到 gvim_fullscreen 目录,然后执行 nmake 即可。

预编译好的二进制文件可以到这里下载:https://github.com/movsb/gvim_fullscreen/releases

标签:vim