gVim 启动时窗口自动居中
最近折腾 vim, 除了配置巨麻烦外, 另一个很蛋疼的就是窗口位置问题了, 折腾了半天无法启动时自动居中, 找遍各地也只有保存上次位置, 下次启动时恢复的方法 废话不多说, 直接上代码, 丢到 vimrc 中即可:
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 启动时窗口自动居中的更多相关文章
- (转)让一个进程启动时Windbg自动Attach上去
如何让一个进程启动时Windbg自动Attach上去 以IE为例:需要在注册表中创建一项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current ...
- win7启动时怎么自动进入桌面
1.按Win+R组合键,打开“运行”对话框.(Win是键盘下方左右两边的两个印有微软标志的键) 2.Windows XP/2003/2008/2008R2输入"control userpas ...
- web项目启动时,自动执行代码的几种方式
在项目开发过程中,往往需要一些功能随着项目启动而优先启动,下面我总结几种方式(非spring boot) spring boot的参考 spring boot 学习之路9 (项目启动后就执行特定方法) ...
- Android Studio 启动时不自动打开项目
主界面中,选择单击菜单栏 File ,单击 Settings 选择 Appearance & Behavior 选项.选择System Settings选项.取消勾选Reopen last p ...
- AndroidStudio启动时不自动打开项目
取消勾选Reopen last project on startup选项 点击 OK 就行了
- 让tomcat启动时,自动加载你的项目
在tomcat-->conf-->serve.xml文件最后加上 <Context path="/atest" docBase="E:\Workspac ...
- Tomcat启动时自动加载一个类
有时候在开发Web应用的时候,需要tomcat启动后自动加载一个用户的类,执行一些初始化方法,如从数据库中加载业务字典到内存中,因此需要在tomcat启动时就自动加载一个类,或运行一个类的方法. 可以 ...
- [转]在BBB启动时自动加载dtbo(或执行脚本、运行程序)
启动时自动加载dtbo,实际上就是做了一个cape.官方推荐的方法是用eeprom来实现,请参考我的博文<为BBB制作专属自己的cape(一)>和<为BBB制作专属自己的cape(四 ...
- Activiti+oracle 启动项目时不能自动建表或更新表的问题分析及解决办法
现象描述:按照正常配置,第一次启动时不能自动建表 关键配置片段如下: <bean id="processEngineConfiguration" class="or ...
随机推荐
- zabbix 监控 Esxi
一.下载模板 http://www.zabbix.org/wiki/Zabbix_Templates 我这边ESXI 版本是6.0的,但是模板只有5,也可以用 二.添加模板 配置 ---> 模板 ...
- centos中设置swap交换空间的大小设置和swappiness的比例设置
首先使用free -m命令查看内存使用情况和swap的大小 关闭swap: 设置swap的大小: bs指的是Block Size,就是每一块的大小.这里的例子是1M,意思就是count的数字,是以1M ...
- Python学习笔记(四十三)virtualenv (创建一套“隔离”的Python运行环境)
摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432712108 ...
- 对WebView进行的一些设置
webView.getSettings().setJavaScriptEnabled(true); //使用setting WebSettings webSettings = webView.getS ...
- 重构改善既有代码设计--重构手法06:Split Temporary Variable (分解临时变量)
你的程序有某个临时变量被赋值超过一次,它既不是循环变量,也不被用于收集计算结果.针对每次赋值,创造一个独立.对应的临时变量 double temp = 2 * (_height + _width); ...
- Scrollbar的样式
.test{ /*立体滚动条凸出部分的颜色*/ scrollbar-face-color:#FEFAF1; /*滚动条空白部分的颜色*/ scrollbar-highlight-color:#FEFA ...
- vue-router.esm.js?fe87:16 [vue-router] Route with name 'page' does not exist
本文地址:http://www.cnblogs.com/veinyin/p/7910525.html 我的路由配置 { path: '/page', name: page, component: pa ...
- IntelliJ Idea key shortcuts
>Default explaination Official IntelliJ Idea 常用快捷键列表 Shortcuts Ctrl+Shift + Enter,语句完成 "!&qu ...
- hash(2018年CSUST省赛选拔赛第一场B题+hash+字典树)
题目链接:http://csustacm.com:4803/problem/1006 题目: 思路:正如题目一样,本题是一个hash,比赛的时候用的字典树,但是不知道为什么一直RE(听学长说要动态开点 ...
- 天梯赛 L2-001 紧急救援 (最短路 dij)
作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上.当其他城市有紧急求 ...