gVim 启动时窗口自动居中
2016-09-30 19:16
435 查看
最近折腾 vim, 除了配置巨麻烦外, 另一个很蛋疼的就是窗口位置问题了, 折腾了半天无法启动时自动居中, 找遍各地也只有保存上次位置, 下次启动时恢复的方法 废话不多说, 直接上代码, 丢到 vimrc 中即可:
几个 magic number 的解释:
系统窗口边框的大小, 像素为单位
单个字符的平均宽高, 像素为单位
可以把窗口最大化, 计算一下总像素和总字符数, 除法一下就好了
在相同 DPI 的屏幕下, 无论什么分辨率都能自动居中
不同 DPI 的屏幕下, 需重新计算那几个 magic number
来源:http://zsaber.com/blog/p/14
function WindowCenterInScreen() set lines=9999 columns=9999 let g:windowsSizeFixX = 58 let g:windowsSizeFixY = 118 let g:windowsScaleX = 7.75 let g:windowsScaleY = 17.0 let g:windowsPosOldX = getwinposx() let g:windowsPosOldY = getwinposy() let g:windowsScreenWidth = float2nr(winwidth(0) * g:windowsScaleX) + g:windowsPosOldX + g:windowsSizeFixX let g:windowsScreenHeight = float2nr(winheight(0) * g:windowsScaleY) + g:windowsPosOldY + g:windowsSizeFixY set lines=30 columns=108 let g:windowsSizeWidth = float2nr(winwidth(0) * g:windowsScaleX) + g:windowsSizeFixX let g:windowsSizeHeight = float2nr(winheight(0) * g:windowsScaleY) + g:windowsSizeFixY let g:windowsPosX = ((g:windowsScreenWidth - g:windowsSizeWidth) / 2) let g:windowsPosY = ((g:windowsScreenHeight - g:windowsSizeHeight) / 2) exec ':winpos ' . g:windowsPosX . ' ' . g:windowsPosY endfunc au GUIEnter * call WindowCenterInScreen()
几个 magic number 的解释:
windowsSizeFixX/Y
系统窗口边框的大小, 像素为单位
windowsScaleX/Y
单个字符的平均宽高, 像素为单位
可以把窗口最大化, 计算一下总像素和总字符数, 除法一下就好了
在相同 DPI 的屏幕下, 无论什么分辨率都能自动居中
不同 DPI 的屏幕下, 需重新计算那几个 magic number
来源:http://zsaber.com/blog/p/14
相关文章推荐
- gvim启动的时候窗口自动最大化
- 巧让Word启动时自动显示打开窗口
- PB中窗口自动居中
- golang web程序开机自动启动,并隐藏cmd窗口
- VB.net实现窗口启动时的自动隐藏
- 启动kibana后关闭shell窗口后kibana自动关闭的解决办法
- PB中窗口自动居中
- windows下自动启动Redis隐藏命令行窗口
- 远程启动jboss,关闭窗口,jboss自动关闭
- windows开机自动执行bat脚本启动cmd命令窗口并执行命令,最后自动关闭cmd命令窗
- windows启动时自动打开的应用程序窗口默认设置为全屏?
- 让一层div遮住全窗口 另一层显示登陆框自动居中的css代码
- CFormView随着窗口的变化,Control及OLE控件自动居中窗体
- windows下自动启动Redis隐藏命令行窗口的方法
- div自动适应浏览器窗口水平和垂直居中
- 巧让Word启动时自动显示打开窗口
- WPF应用程序设置启动时自动打开的第一个窗口的几种方式
- Qt中使用QGLview组件启动应用程序窗口自动关闭
- 启动kibana后关闭shell窗口后kibana自动关闭
- WPF应用程序设置启动时自动打开的第一个窗口的几种方式